我是python的初学者,我正在尝试使用:
绘制图形`nx.write_dot(G, "%s.dot"%(image))`
在定义的函数中。当我执行该程序时,我收到此错误:
文件“sim.py”,第31行,in main()的
文件“sim.py”,第30行,在main中 sol.run()
文件“C:\ Python27 \ My sim \ Solution.py”,第221行,在运行中 self.drawGraph(G,“solution1”)
文件“C:\ Python27 \ My sim \ Solution.py”,第227行,在drawGraph中 nx.write_dot(G,“%s.dot”%(image))
文件“”,第2行,在write_dot
中文件“C:\ Python27 \ lib \ site-packages \ networkx \ utils \ decorators.py”,第220行,在_open_file中
result = func(* new_args,** kwargs)
文件“C:\ Python27 \ lib \ site-packages \ networkx \ drawing \ nx_pydot.py”,第58行,在write_dot中
P = to_pydot(G)
文件“C:\ Python27 \ lib \ site-packages \ networkx \ drawing \ nx_pydot.py”,第197行,在to_pydot
P = pydot.Dot(graph_type = graph_type,strict = strict,** graph_defaults) AttributeError:'module'对象没有属性'Dot'
这似乎是一个Windows操作系统问题(我在win7上),因为我的同事可以在他的ubuntu机器上运行相同的脚本而没有任何错误。
感谢您的帮助!
答案 0 :(得分: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 community,它们是免费的。