如何解决使用来自数据帧的信息自定义边和节点的设置
目前我已经使用来自源目标数据帧的 NetworkX 构建了一个网络:
import networkx as nx
G = nx.from_pandas_edgelist(df,source='Person1',target='Person2')
数据集
Person1 Age Person2 Wedding
0 Adam John 3 Yao Ming Green
1 Mary Abbey 5 Adam Lebron Green
2 Samuel Bradley 24 Mary Lane Orange
3 Lucas Barney 12 Julie Lime Yellow
4 Christopher Rice 0.9 Matt Red Green
我想根据 Age
列(即结婚年龄)和 Wedding
列中的节点颜色设置链接的大小/权重。
我知道,如果我想添加一条边,我可以将其设置如下:G.add_edge(Person1,Person2,size = 10)
;为了向节点应用不同的颜色,我可能应该使用参数 node_color=color_map
,其中 color_map
应该是婚礼列中的颜色列表(如果我是对的)。
你能解释一下如何将这些设置应用到我的案例中吗?
解决方法
IIUC:
df = pd.read_clipboard(sep='\s\s+')
collist = df.drop('Age',axis=1).melt('Wedding')
collist
G = nx.from_pandas_edgelist(df,source='Person1',target='Person2',edge_attr='Age')
pos=nx.spring_layout(G)
nx.draw_networkx_nodes(G,pos,nodelist=collist['value'],node_color=collist['Wedding'])
nx.draw_networkx_edges(G,width = [i['Age'] for i in dict(G.edges).values()])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。