2016-01-27 154 views
-2

我在python初学者,我试图绘制使用图形:“模块”对象有没有属性“点”

`nx.write_dot(G, "%s.dot"%(image))` 
在定义函数

。当我EXCUTE程序,我得到这个错误:

文件 “sim.py” 31行,在 的main()

文件 “sim.py”,30日线在主 溶胶.RUN()

文件 “C:\ Python27 \我的SIM \ Solution.py”,线221,在运行 self.drawGraph(G, “解决方法1”)

文件“C:\ Python27 \我的sim \ Solution.py“,行227,drawGraph nx.write_dot(G,”%s.dot“%(image))

文件 “”,第2行,在write_dot

文件 “C:\ Python27 \ lib中\站点包\ networkx \ utils的\ decorators.py”,线220,在_open_file

结果= FUNC( * new_args,** kwargs)

文件 “C:\ Python27 \ lib中\站点包\ networkx \绘图\ 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,严格=严格,** graph_defaults) AttributeError的: '模块' 对象有没有属性 '点'

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

感谢您的帮助!

+0

您可以使用dir(P)来查看变量的方法/属性。 –

+0

它看起来像文件命令开头引号,但不是一贯地结束;这只是一个手动输入错误? – MathBio

+0

@MichelKeijzers:请告诉我该怎么做? (我开始与python) – Betty

回答

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,你必须安装它。

也用于保存。点文件刚加入这一行:

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,它们是免费的。

+0

我试过这种方法,但是当我想要安装matplotlib,它失败了,因为它需要visual C++,如果我记得wellans我的机器上没有足够的空间来安装新软件;所以我正在处理my_dot问题。谢谢! – Betty

+0

@Betty我明白了......你可以忽略2和7行的“plt”。 – Bear

+0

G和图像是我的函数属性,所以当我调用这个函数时,就会出现这个错误。 我用你最后的代码提示,但它有一个错误:ImportError:draw()需要Matplotlib。我想我会尝试释放一些空间并安装visual C++。 – Betty

相关问题