1

我想创建一个有向图,pydot并且我也有一个现成的边集。边集的类型可以是列表也可以是元组,都可以,因为我可以提前根据自己的需求构造边集,就像[(1,2),(2,3),(3,2)]or一样((1,2),(2,3),(3,2))

我初始化一个pydot对象g如下:

g = pydot.Dot()
g.set_type('digraph')

之后,我发现没有 like 的功能add_edge_from,只有add_edgefor 的功能g。这是否意味着我必须一个一个地生成边缘?

也许我可以在开始时按照以下方式从边缘集创建图形。

g=pydot.graph_from_edges(edge_set)

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

顺便说一句,我尝试实现图形使用networkx和成功。但是,它花哨、迂回的展示方式,更注重节点以外的边缘(对不起,这只是我的观点,当然你可能不同意),不符合我现在想要的这种情况。

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

4

1 回答 1

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

在此处输入图像描述

于 2016-04-21T00:06:10.330 回答