如何使用networkX为晶格上的节点子集着色

问题描述 投票:0回答:1

我想使用 NetworkX 为图中的一些节点着色

您好,我正在使用 NetworkX 生成节点网格,如下

import networkx as nx  
s = 10
G = nx.grid_graph(dim=[s,s])
nodes = list(G.nodes)
edges = list(G.edges)
p = []
for i in range(0, s):
    for j in range(0, s):
        p.append([i,j])
for i in range(0, len(nodes)):
    G.nodes[nodes[i]]['pos'] = p[i]

pos = {}
for i in range(0, len(nodes)):
        pos[nodes[i]] = p[i]

nx.draw(G, pos)

这是一张图片:

enter image description here

但是,我不知道如何使用不同的颜色(如红色或绿色)为这些节点的子集着色。例如,假设我想将左下角着色为红色,将右上角着色为红色和绿色,我怎样才能选出这些点并告诉 python 这样做呢?有没有办法减少节点的大小?

另外,有没有比使用 networkx 更好的方法来做到这一点?我的最终目标是绘制不同颜色的点阵。

我是编程新手,所以我希望这是一个明确的问题。

python graph grid networkx
1个回答
0
投票

构建颜色列表并将其作为

node_color
参数传递:

# default color
colors = ['#1f78b4'] * len(G)
# bottom left node
colors[0] = '#C30000'
# top right
colors[-1] = '#00C300'

nx.draw(G, pos, node_color=colors)

输出:

networkx grid node color

© www.soinside.com 2019 - 2024. All rights reserved.