为networkx中的特定节点着色

时间:2019-02-08 10:58:03

标签: python matplotlib networkx

我在networkx中有一个要绘制的图形。一切正常,但我认为为特定的节点着色将很有用。我该怎么做?

我已经看到,可以通过使用命令

来完成此操作
draw_networkx_nodes(G, pos, nodelist=None, node_size=300, node_color='r', node_shape='o', alpha=1.0, cmap=None, vmin=None, vmax=None, ax=None, linewidths=None, label=None, **kwds)

通过将color和cmap关键字设置为正确的值。但是到目前为止,我看到的所有示例都使用cmap=plt.get_cmap(some string),这是一个标准函数,对我似乎没有帮助。

为了阐明这一点:我有几个节点列表,我想用相同的颜色给列表中的所有节点上色

1 个答案:

答案 0 :(得分:1)

您可以根据它们提供的example的颜色,成组地绘制节点 。对于绘制的每个组,只需将node_color指定为所需的颜色即可。

import networkx as nx

G = nx.cubical_graph()
pos = nx.spring_layout(G)

nodes = {
    'r': [1, 3, 5],
    'b': [0, 2],
    'g': [4]
}
for node_color, nodelist in nodes.items():
    nx.draw_networkx_nodes(G, pos, nodelist=nodelist, node_color=node_color)

labels = {x: x for x in G.nodes}
nx.draw_networkx_labels(G, pos, labels, font_size=16, font_color='w')

enter image description here