创建图类

时间:2015-11-08 13:51:58

标签: python graph networkx

我如何绘制称为流图的新类。我收到了很多错误:

Traceback (most recent call last):
  File "Graphs.py", line 26, in <module>
    nx.draw(F1)
  File "/home/thinkpad/anaconda3/lib/python3.4/site-packages/networkx/drawing/nx_pylab.py", line 131, in draw
    draw_networkx(G, pos=pos, ax=ax, **kwds)
  File "/home/thinkpad/anaconda3/lib/python3.4/site-packages/networkx/drawing/nx_pylab.py", line 262, in draw_networkx
    pos = nx.drawing.spring_layout(G)  # default to spring layout
  File "/home/thinkpad/anaconda3/lib/python3.4/site-packages/networkx/drawing/layout.py", line 232, in fruchterman_reingold_layout
    if len(G)==0:
TypeError: object of type 'FlowGraph' has no len()

代码:

import networkx as nx
import matplotlib.pyplot as plt

class FlowGraph:
    G=nx.DiGraph()
    I=[]
    O=[]

F1=FlowGraph()
# Add nodes
F1.G.add_node(1)
F1.G.add_node(2)
F1.G.add_node(3) 
# Add edges
F1.G.add_edge(1,2)
#F1.G.add_edges_from[(1,2),(2,3)]
# Add interface
F1.I=[1]
F1.O=[3]
nx.draw(F1)
plt.show()

1 个答案:

答案 0 :(得分:1)

回溯告诉您函数nx.draw失败。如果你查看nx.draw的文档字符串,你会发现它希望 networkx graph 作为第一个参数。相反,您已经为它提供了FlowGraph实例。函数nx.draw根本不知道如何处理FlowGraph

也许您希望将F1.G传递给nx.draw?请注意,F1.G networkx图表