【问题标题】:Draw a graph with edges using Networkx使用 Networkx 绘制带边的图
【发布时间】:2012-10-28 21:23:12
【问题描述】:

我一直被一些非常简单的事情所困扰。我正在尝试绘制并显示具有 2 个节点和 1 条边的图形。但我得到这个错误:

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)

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

【问题讨论】:

  • 我对 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 是对的,这是一个 NumPy 错误,希望能尽快解决 github.com/numpy/numpy/issues/2700
  • 嗯,我会尝试使用旧版本。但是然后我需要创建一个 virtualenv...嗯...会尝试...无论如何谢谢:)

标签: python graph networkx graph-theory


【解决方案1】:

这是一个可行的解决方案。

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()

【讨论】:

    【解决方案2】:
    import networkx as nx
    g=nx.Graph()
    g.add_node(1)
    g.add_node(2)
    g.add_edge(1,2)
    nx.draw(g)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 2021-07-27
      • 2022-11-12
      • 2012-10-24
      • 2019-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多