我迷失在所有用于绘制图形的 python库中 。我希望我知道一个灵活的文档 ......
我花了大量时间与 networkx 一起玩,发现它对我的任务不太好(例如,对于较大的图表重叠标签)。
现在,我正在尝试使用 pydot 或 pydotplus ,但没有文档,没有合理的例子。或者我错过了什么? Pydotplus 网站提供了一个参考,但这对初学者来说并不完全有用。
现在,我可以使用 pydotplus 绘制图形,但我想更改节点位置(Fruchterman-Reingold算法),尤其是使用节点颜色和大小,但我不知道怎么做。
示例代码:
min-height: 100vh
这会引发异常:
import pydotplus as ptp
graph = ptp.Dot(graph_type='graph')
edges = [(1,2), (1,3), (2,4), (2,5), (3,5)]
nodes = [(1, "A", "r"), (2, "B", "g"), (3, "C", "g"), (4, "D", "r"), (5, "E", "g")]
for e in edges:
graph.add_edge(ptp.Edge(e[0], e[1]))
for n in nodes:
node = ptp.Node(name=n[0], attrs={'label': n[1], 'fillcolor': n[2]} )
graph.add_node(node)
graph.write_png("file.png")
答案 0 :(得分:0)
问题解决了,感谢@pgv。
更正后的代码:
import pydotplus as ptp
graph = ptp.Dot(graph_type='graph')
edges = [(1,2), (1,3), (2,4), (2,5), (3,5)]
nodes = [(1, "A", "r"), (2, "B", "g"), (3, "C", "g"), (4, "D", "r"), (5, "E", "g")]
for e in edges:
graph.add_edge(ptp.Edge(e[0], e[1]))
for n in nodes:
node = ptp.Node(name=n[0], label= n[1], fillcolor=n[2], style="filled" )
graph.add_node(node)
graph.write_png("file.png")