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. 代码为节点着色,但同时使许多其他节点消失。我做错了什么?
  2. 一旦 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()