我想使用 pydot 创建一个有向图,并且我也有一个现成的边集。边集的类型可以是列表,也可以是元组,这都没关系,因为我可以提前根据自己的要求构造边集,就像[(1,2),(2,3), (3,2)]
或 ((1,2),(2,3),(3,2))
。
我初始化一个pydot
对象g
如下:
g = pydot.Dot()
g.set_type('digraph')
之后,我发现没有像add_edge_from
这样的函数,只有g
的add_edge
函数。是不是意味着我必须一一生成边?
也许我可以按照一开始的方式从边集创建图形。
g=pydot.graph_from_edges(edge_set)
但我发现它会产生一个无向图:(
顺便说一句,我尝试使用networkx
实现该图并成功。但其花哨迂回的展示方式,更注重边缘而不是节点(抱歉这只是我的观点,当然你可能不同意),并不符合我现在想要的。
有人对我有什么想法或建议吗?我可以使用现成的方法吗?感谢您的帮助!
最佳答案
In [1]: import networkx as nx
In [2]: G = nx.DiGraph([(1,2),(2,3),(3,2)])
In [3]: from networkx.drawing.nx_pydot import write_dot
In [4]: write_dot(G,'file.dot')
In [5]: !dot -Tpng file.dot >file.png
关于python - 使用 pydot 显示边集的有向图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36722770/