使用pydot

时间:2016-04-19 15:23:51

标签: python graph networkx pydot

我想使用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这样的函数,add_edge只有g函数。这是否意味着我必须逐一产生边缘?

也许我可以通过以下方式从边缘集创建图形。

g=pydot.graph_from_edges(edge_set)

但我发现它会产生一个无向图:(

顺便说一下,我尝试使用networkx和成功来实现图表。然而,它的花哨和迂回的展示模式,更重视节点以外的边缘(对不起,这只是我的意见,当然你可能不同意它),现在在这种情况下不符合我的要求。

那么有人对我有任何想法或建议吗?我可以使用现成的方法吗?谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

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

enter image description here