我正在尝试学习网络分析,所以我在网上使用希拉里克林顿的电子邮件来查看谁给谁发了电子邮件。
我的数据在一个名为 hrc_dict 的字典中。我有一个发送者和接收者的元组,然后是电子邮件的频率。这是字典的一部分:
{('Hillary Clinton', 'Cheryl Mills'): 354, ('Hillary Clinton', 'l'): 1, ('Linda Dewan', 'Hillary Clinton'): 1, ('Hillary Clinton', 'Capricia Marshall'):9,('Phillip Crowley','Hillary Clinton'):2,('Cheryl Mills','Anne-Marie Slaughter'):1}
我在 Jupyter 中使用 Networkx 创建图表。我的代码如下:
import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()
G.add_nodes_from(hrc_dict)
for s, r in hrc_dict:
G.add_edge((s,r), hrc_dict[(s,r)])
G.add_edge((s,r), hrc_dict[(s,r)])
当我调用 nx.Graph() 时,什么都没有打印出来,当我调用 G.nodes() 时,并不是所有的节点都显示出来。我在这里粘贴了一些输出:
[1, 2, 3, 4, 5, 6, 7, 8, 'Mark Penn', 10, ('Todd Stern', 'Hillary Clinton'), 12,]
当我调用 G.edges() 时,我得到以下内容,这似乎是正确的
[(1, ('Hillary Clinton', 'l')), (1, ('Linda Dewan', 'Hillary Clinton')), (1, ('Hillary Clinton', 'Thomas Shannon')), (1 , ('Cheryl Mills', 'Anne-Marie Slaughter'), (1, ('Christopher Butzgy', 'Hillary Clinton'))]
有谁知道如何将节点正确添加到我的图表中。我假设每个人都需要成为一个节点,那么如何分解元组并分别添加名称?边缘是否正确显示或者我需要以不同的方式输入它们?