2012-10-28 154 views
2

我一直很困扰一些非常简单的事情。我试图绘制并显示2个节点和1个边的图。但是,我得到这个错误:使用Networkx绘制带有边缘的图形

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/usr/local/lib/python2.7/site-packages/networkx/drawing/nx_pylab.py", line 133, in  draw 
draw_networkx(G,pos=pos,ax=ax,**kwds) 
File "/usr/local/lib/python2.7/site-packages/networkx/drawing/nx_pylab.py", line 267, in draw_networkx 
edge_collection=draw_networkx_edges(G, pos, **kwds) 
File "/usr/local/lib/python2.7/site-packages/networkx/drawing/nx_pylab.py", line 546, in draw_networkx_edges 
ax.add_collection(edge_collection) 
File "/usr/local/lib/python2.7/site-packages/matplotlib/axes.py", line 1445, in add_collection 
self.update_datalim(collection.get_datalim(self.transData)) 
File "/usr/local/lib/python2.7/site-packages/matplotlib/collections.py", line 167, in get_datalim 
offsets.shape = (-1, 2)      # Make it Nx2 
AttributeError: incompatible shape for a non-contiguous array 

这很简单,我只加2个节点与

add_node(1) 
add_node(2) 
add_edge(1,2) 

,然后绘制并显示它。但我不能让它工作。

+0

我有与Python 3.3相同的问题,来自github的NumPy(Python 3.3/PEP 393兼容性需要)和matplotlib 1.2.0rc2。当使用python 2.6.6,numpy 1.6.2和matplotlib 1.1.1时,它工作正常。 – Olson

+0

@olson是对的,这是一个NumPy错误,希望很快就会解决https://github.com/numpy/numpy/issues/2700 – Aric

+0

嗯,我会尝试使用旧版本。但后来我需要创建一个virtualenv ...嗯...将尝试...谢谢无论如何:) – WYS

回答

2
import networkx as nx 
g=nx.Graph() 
g.add_node(1) 
g.add_node(2) 
g.add_edge(1,2) 
nx.draw(g) 
+1

不能在Ubuntu的ipython上工作。 – VaidAbhishek

2

这是一个有效的解决方案。

import matplotlib.pyplot as plt 
import networkx as nx 

# Create a basic Graph 
g=nx.Graph() 
g.add_node(1) 
g.add_node(2) 
g.add_edge(1,2) 

# Output the result 
nx.draw(g) 
plt.show()