Networkx:着色时网络中的节点消失
Networkx: nodes in the network disappear when colouring
我在 networkx 中有一个从字典创建的网络图,我想用特定颜色为节点子集着色。
我使用以下方法创建了原始网络图
nx.draw_networkx(g, with_labels=False, node_size=20)
然后我尝试使用 How to set colors for nodes in NetworkX?
中建议的解决方案为特定节点着色不同的颜色
问题:
- 代码为节点着色,但同时使许多其他节点消失。我做错了什么?
- 一旦 1) 得到解决,修改代码为多个节点着色的最佳方法是什么?
感谢您的帮助!
for node in g:
if node == 'Bob':
color_map.append('red')
else:
color_map.append('blue')
nx.draw(g, node_color=color_map, with_labels=False, node_size=20)
这是一个代码示例,您可以在其中使用映射字典对多个节点进行颜色编码。我无法重现缺少节点的问题,运行 使用您的数据编写此代码并查看是否缺少任何节点。
import networkx as nx
from matplotlib import pyplot as plt
g = nx.Graph()
g.add_edges_from([('Bob', 'Steve'), ('Bob', 'Jeff'), ('Jeff', 'George'), ('Jeff', 'Steve')])
node_map = {'Bob': 'red', 'Jeff': 'green'}
color_map = [node_map.get(n, 'blue') for n in g.nodes]
nx.draw_networkx(g, node_color=color_map, with_labels=True, node_size=200)
plt.show()
我在 networkx 中有一个从字典创建的网络图,我想用特定颜色为节点子集着色。
我使用以下方法创建了原始网络图
nx.draw_networkx(g, with_labels=False, node_size=20)
然后我尝试使用 How to set colors for nodes in NetworkX?
中建议的解决方案为特定节点着色不同的颜色问题:
- 代码为节点着色,但同时使许多其他节点消失。我做错了什么?
- 一旦 1) 得到解决,修改代码为多个节点着色的最佳方法是什么?
感谢您的帮助!
for node in g:
if node == 'Bob':
color_map.append('red')
else:
color_map.append('blue')
nx.draw(g, node_color=color_map, with_labels=False, node_size=20)
这是一个代码示例,您可以在其中使用映射字典对多个节点进行颜色编码。我无法重现缺少节点的问题,运行 使用您的数据编写此代码并查看是否缺少任何节点。
import networkx as nx
from matplotlib import pyplot as plt
g = nx.Graph()
g.add_edges_from([('Bob', 'Steve'), ('Bob', 'Jeff'), ('Jeff', 'George'), ('Jeff', 'Steve')])
node_map = {'Bob': 'red', 'Jeff': 'green'}
color_map = [node_map.get(n, 'blue') for n in g.nodes]
nx.draw_networkx(g, node_color=color_map, with_labels=True, node_size=200)
plt.show()