私はネットワーク分析を学ぼうとしているので、ヒラリー・クリントンの電子メールをオンラインで使用して、誰が誰に電子メールを送信したかを確認しています。
私のデータは、hrc_dict という辞書にあります。送信者と受信者のタプルに続いて、電子メールの頻度があります。これは辞書の一部です:
{('ヒラリー・クリントン', 'シェリル・ミルズ'): 354, ('ヒラリー・クリントン', 'l'): 1, ('リンダ・デワン', 'ヒラリー・クリントン'): 1, ('ヒラリー・クリントン', 'カプリシアマーシャル'): 9, ('フィリップ・クロウリー', 'ヒラリー・クリントン'): 2, ('シェリル・ミルズ', 'アン・マリー・スローター'): 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, 'マーク・ペン', 10, ('トッド・スターン', 'ヒラリー・クリントン'), 12,]
G.edges() を呼び出すと、次のようになります。
[(1, ('ヒラリー・クリントン', 'l')), (1, ('リンダ・ディーワン', 'ヒラリー・クリントン')), (1, ('ヒラリー・クリントン', 'トーマス・シャノン')), (1 , ('シェリル・ミルズ', 'アン・マリー・スローター')), (1, ('クリストファー・バッツギー', 'ヒラリー・クリントン'))]
グラフにノードを正しく追加する方法を知っている人はいますか? それぞれの人がノードである必要があると思いますが、タプルを分割して名前を個別に追加するにはどうすればよいでしょうか? エッジは正しく表示されていますか、それとも別の方法で入力する必要がありますか?