Python 使用pydot从边集显示有向图

Python 使用pydot从边集显示有向图,python,graph,networkx,pydot,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\u edge\u from这样的函数,只有add\u edge函数用于g。这是否意味着我必须一个接一个地生成边 也许我可以在开始时通

我想用pydot创建一个有向图,我还有一个现成的边集。边集的类型可以是一个列表或一个无关紧要的元组,因为我可以根据自己的需求提前构造边集,就像
[(1,2)、(2,3)、(3,2)]
((1,2)、(2,3)、(3,2))

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

g = pydot.Dot()
g.set_type('digraph')
之后,我发现没有像
add\u edge\u from
这样的函数,只有
add\u edge
函数用于
g
。这是否意味着我必须一个接一个地生成边

也许我可以在开始时通过以下方法从边集创建图形

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

提前谢谢。很遗憾,我无法理解[5](无法执行)和[4]中的含义给我ImportError:没有名为pydotplus的模块。你能帮我弄清楚吗?顺便说一下,我在python 2.7中使用Pycharm作为IDE。然后我有Spyder来运行你上面给出的代码。ImportError现在已经不存在了。但是控制台仍然在[5]中显示SyntaxError:无效语法:(这是IPython输出。你只需要冒号(:)后面的部分.4行生成一个点文件,您可以使用graphviz以常规方式进行渲染。对不起,我不明白为什么ImportError会再次存在,没有名为pydotplus的模块。您知道如何通过conda安装pydotplus吗?我尝试用谷歌搜索它,但未能解决它。。。