gpt4 book ai didi

python-3.x - networkx:为每个节点设置不同的 alpha?

转载 作者:行者123 更新时间:2023-12-02 20:44:27 25 4
gpt4 key购买 nike

我想为每个节点设置不同的 alpha。为每个节点设置不同的颜色很容易,但 alpha 只异常(exception)一个值。有人知道怎么做吗?

(我的目标是让颜色从蓝色渐变到红色。如果值低于中点,则为蓝色,如果高于中点,则为红色。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 的绘图会表现得像 matplotlibscatter 绘图,并接受 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)

我不确定为什么会这样。

关于python-3.x - networkx:为每个节点设置不同的 alpha?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44952804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com