"节点' 0'没有位置 - 将节点位置分配给节点类型的问题'在networkX / Python中

时间:2017-06-29 12:20:31

标签: python position nodes networkx

我试图使用networkX绘制图表。

我已将准确的位置定义为:

pos={0:(40,100), 1:(50,100), 2:(45,80), 3:(55,80), 4:(50,60), 5:(50,40), 6:(50,20)}

然后我将节点分成两种类型,所以让我们说节点0,2,4,6是&#39;键入a&#39; < / strong>和1,3,5是&#39;类型b&#39; 。我使用append函数将它们附加到两个不同的节点列表。所以现在我有两个不同的节点列表: type_a type_b 并可以绘制它们 - 例如使用:

nx.draw_networkx_nodes(G, pos, nodelist=type_a, node_size=2000,node_shape="s", node_color='g', labels=exploit_node_labels, with_labels=True, alpha=1)

我的问题是能够在分配节点时将节点位置分配给节点。我如何分配&#39; pos&#39;将节点附加到两个不同的列表?

这种方法给我一个错误如下:

nx.draw_networkx_nodes(G, pos, nodelist=type_a, node_size=2000,node_shape="s", node_color='g', labels=exploit_node_labels, with_labels=True, alpha=1)
          File "C:\Program Files\Python36\lib\site-packages\networkx\drawing\nx_pylab.py", line 386, in draw_networkx_nodes
            raise nx.NetworkXError('Node %s has no position.'%e)

networkx.exception.NetworkXError: Node '0' has no position.

1 个答案:

答案 0 :(得分:1)

显然,图表export class Page{ inputValue:string; constructor(){ console.log(this.inputValue) } } 中的节点是数字字符串,即G ...而不是整数'0', '1','2' ...但是,您使用{定义位置{1}}使用整数而不是字符串。尝试如下定义您的位置,它应该工作

0,1,2