我正在使用pydotplus
来解析点文件。函数graph = pydotplus.graph_from_dot_file(dot_file)
返回一个pydotplus.graphviz.Dot对象,我想打印该图的节点,边信息,保存并使用我的python程序中的内容。似乎DOT是一个特殊的类,我无法打印其内容。如何获取内容(节点,边),以便我可以在python的数据结构中保存和使用它?
答案 0 :(得分:0)
Dot类继承自Graph类,该类具有方法get_nodes()和get_edges()。这是在节点和边缘上获取数据的示例。
import pydotplus
from sklearn import tree
# Data Collection
X = [[180, 15, 0],
[177, 42, 0],
[136, 35, 1],
[174, 65, 0],
[141, 28, 1]]
Y = ['1', '2', '1', '2', '1']
data_feature_names = ['a', 'b', 'c']
# Training
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, Y)
dot_data = tree.export_graphviz(clf,
feature_names=data_feature_names,
out_file=None,
filled=True,
rounded=True)
graph = pydotplus.graph_from_dot_data(dot_data)
print(graph.to_string())
for node in graph.get_nodes():
print(node.get_name())
print(node.get_port())
print(node.to_string())
print(node.obj_dict)
for edge in graph.get_edges():
print(edge.get_source())
print(edge.get_destination())
print(edge.to_string())
print(edge.obj_dict)