-2

我是python的初学者,我正在尝试使用以下方法绘制图形:

`nx.write_dot(G, "%s.dot"%(image))`

在定义的函数中。当我执行程序时,我收到了这个错误:

File "sim.py", line 31, in <module>
    main()

File "sim.py", line 30, in main
    sol.run() 

File "C:\Python27\My sim\Solution.py", line 221, in run
    self.drawGraph(G, "solution1")

File "C:\Python27\My sim\Solution.py", line 227, in drawGraph
    nx.write_dot(G, "%s.dot"%(image))

File "<decorator-gen-232>", line 2, in write_dot

File "C:\Python27\lib\site-packages\networkx\utils\decorators.py", line 220, in _open_file

result = func(*new_args, **kwargs)

File "C:\Python27\lib\site-packages\networkx\drawing\nx_pydot.py", line 58, in write_dot

P=to_pydot(G)

File "C:\Python27\lib\site-packages\networkx\drawing\nx_pydot.py", line 197, in to_pydot

P = pydot.Dot(graph_type=graph_type,strict=strict,**graph_defaults)
AttributeError: 'module' object has no attribute 'Dot'

这似乎是一个 Windows 操作系统问题(我在 win7 上),因为我的同事可以在他的 ubuntu 机器上运行相同的脚本而没有任何错误。

谢谢你的帮助!

4

1 回答 1

0

你正在做教程绘制图表吗?

这里是如何工作的:

import networkx as nx
import matplotlib.pyplot as plt

G=nx.Graph()
G.add_edges_from([(1,2),(1,3)])
nx.draw(G)
plt.show()

编辑:如果您没有安装 matplotlib,只需打开命令行并输入:

pip install matplotlib

matplotlib 是可选的,networkx 没有它,你必须安装它。

也为了保存.dot文件,只需添加以下行:

nx.write_dot(G,'C:/file.dot')

编辑:没有matplotlib会像这样:

import networkx as nx

G=nx.Graph()
G.add_edges_from([(1,2),(1,3)])
nx.draw(G)
nx.write_dot(G,'C:/file.dot')

我注意到在您的代码中nx.write_dot(G, "%s.dot"%(image))您没有定义image和 G,错误应该来自其中之一。

但如果你想安装 c++ 编译器,我建议下载Visual C++ Compiler 33mb 或Microsoft Visual Studio 社区,它们是免费的。

于 2016-01-27T10:57:09.973 回答