networkx:为每个节点设置不同的 alpha?
networkx: set different alpha for each node?
我想为每个节点设置不同的 alpha。为每个节点设置不同的颜色很容易,但 alpha 只例外一个值。有人知道怎么做吗?
(我的目标是让颜色从蓝色渐变到红色。如果值低于中点,则为蓝色,如果高于中点,则为红色。Alpha 将设置渐变。)
nx.draw_networkx_nodes(g,pos=pos,nodelist=nodelist,
node_color=node_color, alpha=1.0)
alpha
值将控制透明度,而不是颜色。
如果您已经提供了 node_color
参数,您的节点将被着色。
如果您希望它们根据这些强度从蓝色变为红色,而不是 alpha,请使用 colormap。例如。 seismic
颜色图从红色变为蓝色。
nx.draw_networkx_nodes(g, pos=pos, nodelist=nodelist, node_color=node_color, cmp='seismic')
编辑:
我在试图深入研究时偶然发现了一些奇怪的行为。
我原以为 networkx
的绘图会表现得像 matplotlib
的 scatter
绘图,并接受 rgba 颜色,允许您指定特定的颜色和透明度。但是当我用一个 4 元组数组调用 draw_networkx_nodes
来表示 rgba 颜色时,它会将所有 alpha 值设置为 1。
rgba_colors = np.zeros((5,4))
rgba_colors[:,0] = np.linspace(1,0,5) #red
rgba_colors[:,2] = np.linspace(0,1,5) #blue
rgba_colors[:,3] = np.linspace(0.1,1,5) #alpha values
plt.scatter([1,2,3,4,5],[1,2,3,4,5], color=rgba_colors)
这绘制了一些具有不同颜色和透明度的点。但是,如果您尝试使用 networkx 进行绘图,不仅生成的绘图没有透明度,而且变量 rgba_colors
实际上已被修改。
G = nx.complete_graph(5)
pos = {0: [0,0], 1: [1,1], 2: [2,2], 3: [2,1], 4: [2,3]}
nx.draw_networkx_nodes(G, pos=pos, node_color=rgba_colors)
print(rgba_colors)
我不确定为什么会这样。
我想为每个节点设置不同的 alpha。为每个节点设置不同的颜色很容易,但 alpha 只例外一个值。有人知道怎么做吗?
(我的目标是让颜色从蓝色渐变到红色。如果值低于中点,则为蓝色,如果高于中点,则为红色。Alpha 将设置渐变。)
nx.draw_networkx_nodes(g,pos=pos,nodelist=nodelist,
node_color=node_color, alpha=1.0)
alpha
值将控制透明度,而不是颜色。
如果您已经提供了 node_color
参数,您的节点将被着色。
如果您希望它们根据这些强度从蓝色变为红色,而不是 alpha,请使用 colormap。例如。 seismic
颜色图从红色变为蓝色。
nx.draw_networkx_nodes(g, pos=pos, nodelist=nodelist, node_color=node_color, cmp='seismic')
编辑:
我在试图深入研究时偶然发现了一些奇怪的行为。
我原以为 networkx
的绘图会表现得像 matplotlib
的 scatter
绘图,并接受 rgba 颜色,允许您指定特定的颜色和透明度。但是当我用一个 4 元组数组调用 draw_networkx_nodes
来表示 rgba 颜色时,它会将所有 alpha 值设置为 1。
rgba_colors = np.zeros((5,4))
rgba_colors[:,0] = np.linspace(1,0,5) #red
rgba_colors[:,2] = np.linspace(0,1,5) #blue
rgba_colors[:,3] = np.linspace(0.1,1,5) #alpha values
plt.scatter([1,2,3,4,5],[1,2,3,4,5], color=rgba_colors)
这绘制了一些具有不同颜色和透明度的点。但是,如果您尝试使用 networkx 进行绘图,不仅生成的绘图没有透明度,而且变量 rgba_colors
实际上已被修改。
G = nx.complete_graph(5)
pos = {0: [0,0], 1: [1,1], 2: [2,2], 3: [2,1], 4: [2,3]}
nx.draw_networkx_nodes(G, pos=pos, node_color=rgba_colors)
print(rgba_colors)
我不确定为什么会这样。