gpt4 book ai didi

使用绝对值的 python networkx 颜色图

转载 作者:行者123 更新时间:2023-12-01 08:41:16 24 4
gpt4 key购买 nike

我正在尝试根据一些数值设置网络的节点颜色。然而,我注意到,在指定 node_color 的向量中,如果我使用 matplotlib 颜色图,则只有相对值很重要。我想要的是颜色能够反射(reflect)绝对值。

例如,以下代码生成一个节点具有不同颜色的网络:

G = nx.cycle_graph(6)
edges = np.array(G.edges)
pos = nx.spring_layout(G, iterations=200)

values = np.array([0.1,0.2,0.45,0.25,0.35,0.15])
nx.draw(G, pos, node_color=values,cmap=plt.cm.Reds)

enter image description here

如果我们向 node_color 向量添加一个常量,如下所示

values = np.array([0.1,0.2,0.45,0.25,0.35,0.15])+1
nx.draw(G, pos, node_color=values,cmap=plt.cm.Reds)

我预计所有节点的颜色都会变暗,但代码返回相同的网络。有办法改变这个吗?我知道在 imshow 中我们可以使用参数“norm”来改变它。但是有没有一种简单的方法可以为 networkx 图做到这一点?

最佳答案

让我们看一下 matplotlib.pyplot.scatter documentation 中的 vminvmax 参数。 。作为文档的一部分,它指出

See networkx.draw_networkx() for a description of optional keywords.

然后,在 draw_newtorkx docs参数中有cmap和vmin、vmax用于缩放。

G = nx.cycle_graph(6)
edges = np.array(G.edges)
pos = nx.spring_layout(G, iterations=200)

values = np.array([0.1,0.2,0.45,0.25,0.35,0.15])
nx.draw(G, pos, node_color=values,cmap=plt.cm.Reds, vmin=0, vmax=1)

enter image description here

现在,让我们稍微修改一下缩放系数,这样就不会完全遮盖颜色,我们不是加 1,而是加 0.25,因为我们没有标准化。

values = np.array([0.1,0.2,0.45,0.25,0.35,0.15])+.25
nx.draw(G, pos, node_color=values,cmap=plt.cm.Reds, vmin=0, vmax=1)

enter image description here

关于使用绝对值的 python networkx 颜色图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53481589/

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