NetworkX 不显示节点的数据属性
NetworkX not showing the data attributes of nodes
我在使用 NetworkX 时遇到了这种奇怪的行为,它没有遵循基于 documentation on the Graph object 的预期。
这是我的代码:
In [22]: G = nx.Graph()
In [23]: G.add_node("Roasted",attr_dict={"css_color":"#454463"})
In [24]: G["Roasted"]
Out[24]: {}
In [25]: G.nodes(data=True)
Out[25]: [('Roasted', {'css_color': '#454463'})]
在 In [23]
我添加了一个带有属性字典的节点。在 In [24]
中,我只是像在字典上一样对图表 G
进行索引,并希望它成为 return {'css_color':'#454463'}
,但我得到了一个空字典。如果我要打印显示节点列表的数据,我只能看到该字典。
在文档中,它表明:
>>> G.add_node(1, time='5pm')
>>> G.add_nodes_from([3], time='2pm')
>>> G.node[1]
{'time': '5pm'}
您应该能够简单地通过索引节点名称本身来获取字典。为什么它对我的情况不起作用?
编辑: 如果问题可能是我使用字符串而不是 int 作为节点名称,我试过这个:
In [29]: G.add_node(1,attr_dict={"css_color":"#454463"})
In [30]: G[1]
Out[30]: {}
问题依旧!这会是一个错误吗???
您期望 G["Roasted"]
应该给出节点 "Roasted"
的属性是错误的来源。事实上 G["Roasted"]
给出了关于 "Roasted"
的邻居的信息。它是一个空字典的事实表示您没有为 "Roasted"
.
分配任何邻居。
import networkx as nx
G=nx.Graph()
G.add_edge(1,2)
G[1]
>{2: {}}
您需要使用的是 G.node["Roasted"]
而不是 G["Roasted"]
。
我在使用 NetworkX 时遇到了这种奇怪的行为,它没有遵循基于 documentation on the Graph object 的预期。
这是我的代码:
In [22]: G = nx.Graph()
In [23]: G.add_node("Roasted",attr_dict={"css_color":"#454463"})
In [24]: G["Roasted"]
Out[24]: {}
In [25]: G.nodes(data=True)
Out[25]: [('Roasted', {'css_color': '#454463'})]
在 In [23]
我添加了一个带有属性字典的节点。在 In [24]
中,我只是像在字典上一样对图表 G
进行索引,并希望它成为 return {'css_color':'#454463'}
,但我得到了一个空字典。如果我要打印显示节点列表的数据,我只能看到该字典。
在文档中,它表明:
>>> G.add_node(1, time='5pm')
>>> G.add_nodes_from([3], time='2pm')
>>> G.node[1]
{'time': '5pm'}
您应该能够简单地通过索引节点名称本身来获取字典。为什么它对我的情况不起作用?
编辑: 如果问题可能是我使用字符串而不是 int 作为节点名称,我试过这个:
In [29]: G.add_node(1,attr_dict={"css_color":"#454463"})
In [30]: G[1]
Out[30]: {}
问题依旧!这会是一个错误吗???
您期望 G["Roasted"]
应该给出节点 "Roasted"
的属性是错误的来源。事实上 G["Roasted"]
给出了关于 "Roasted"
的邻居的信息。它是一个空字典的事实表示您没有为 "Roasted"
.
import networkx as nx
G=nx.Graph()
G.add_edge(1,2)
G[1]
>{2: {}}
您需要使用的是 G.node["Roasted"]
而不是 G["Roasted"]
。