微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何更改网络中节点的颜色?

如何解决如何更改网络中节点的颜色?

我想更改 A 列中节点的颜色:

    A                       B                   score      Value    
0   user1               test1                    6.6        A
1   user1               user241                  3.2        AA
2   user241             test1                    4.8        B
3   user12              test4                    3.1        C
4   user1               user23                   2.9        A

我使用 mnet 创建网络:

from pymnet import *
import matplotlib.pyplot as plt

mnet = MultilayerNetwork(aspects=1)
for index in df.index:
      mnet[df.loc[index,'A'],df.loc[index,'B'],'friendship','friendship'] = 1
fig=draw(mnet,show=True,figsize=(25,30))

我认为我应该在 draw() 内更改颜色,但我没有更改命令。无论使用哪种颜色,重要的是A中的所有用户都可以具有相同的颜色(与B中的不同)。 A 中的某些用户可能也在 B 中。

我会做这样的事情:

for node in mnet:
    if node in df["A"].values:
        colors.append("red")
    else: colors.append("green")

但我不知道如何在 fig添加此类信息。

解决方法

根据pymnet.draw()nodeColorDict是一个以节点层为键的字典。

colors = {}
for node in mnet.iter_node_layers():
    if node[0] in df["A"].values:
        colors.update({node: "red"})
    else:
        colors.update({node: "green"})

fig = draw(mnet,show=True,figsize=(25,30),nodeColorDict=colors)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。