用pydot画图时出现断言错误

0 人关注

我刚刚开始使用pydot来创建一个图。我只是创建了一个单一的节点,但在使用jupyter notebook显示图形时,我遇到了一个问题。 这是我的代码。

import pydot
import os
from IPython.display import Image, display
G= pydot.Dot(graph_type='digraph')
node = pydot.Node("S'->.S\nS->.(L)/.a")
G.add_node(node)
im = Image(G.create_png())
display(im)

而以下是我的错误

"dot" with args ['-Tpng', 'C:\\Users\\MAYANK~1\\AppData\\Local\\Temp\\tmptw6hrboj'] returned code: 1
stdout, stderr:
b"'C:\\Users\\Mayank' is not recognized as an internal or external command,\r\noperable program or batch file.\r\n"
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-10-fb336e9303b4> in <module>
      5 node = pydot.Node("S'->.S\nS->.(L)/.a")
      6 G.add_node(node)
----> 7 im = Image(G.create_png())
      8 display(im)
~\anaconda3\lib\site-packages\pydot.py in new_method(f, prog, encoding)
   1721                 """Refer to docstring of method `create`."""
   1722                 return self.create(
-> 1723                     format=f, prog=prog, encoding=encoding)
   1724             name = 'create_{fmt}'.format(fmt=frmt)
   1725             self.__setattr__(name, new_method)
~\anaconda3\lib\site-packages\pydot.py in create(self, prog, format, encoding)
   1943             print(message)
-> 1945         assert process.returncode == 0, process.returncode
   1947         return stdout_data
AssertionError: 1

请帮助我清除这个错误!!

3 个评论
你设法解决了这个问题吗?我看到了同样的问题
不,我没能解决这个错误。所以我最终转而使用digraph库。我可以用digraph做同样的工作,而且相对来说比pydot容易。
不妨看看这个简单的解决方案 stackoverflow.com/a/62611005/5443584
python
python-3.x
graphviz
assertion
pydot
Mayank Gubba
Mayank Gubba
发布于 2020-11-17
2 个回答
rictuar
rictuar
发布于 2021-10-08
已采纳
0 人赞同

由于声誉问题,我不能发表评论,但我可以说,当

pos = graphviz_layout(temp_nx, prog="dot")

给了我一个断言错误,即

pos = nx.nx_agraph.pygraphviz_layout(temp_nx, prog='dot')

worked

cwfparsonson
cwfparsonson
发布于 2021-10-08
0 人赞同

我能够通过使用nx.DiGraph而不是nx.Graph来解决这个问题。

import networkx as nx
from networkx.drawing.nx_pydot import graphviz_layout
G = nx.DiGraph()
# add stuff to graph
fig = plt.figure()