[英]Connection between same nodes of different graph in python
我想在不同研究論文的作者之間創建圖表。 我能夠在同一篇論文的所有作者之間創建一個圖形。 但是我無法將其與其他圖形連接。
import networkx as nx
import matplotlib.pyplot as plt
authors= {0:{'a1':'Brian Vickery',
'a2':'Fatma Özcan',
'a3':'George Lapis',
'a4':'Guy M. Lohman',
'a5':'Hamid Pirahesh',
'a6':'Jim Kleewein',
'a7':'Kevin S. Beyer',
'a8':'Normen Seemann',
'a9':'Robert Lyle',
'a10':'Roberta Cochrane',
'a11':'Tuong C. Truong',
'a12':'Vanja Josifovski'},
1:{ 'a1':'Robert Lyle',
'a2':'Bingsheng He',
'a3':'Mian Lu',
'a4':'Ke Yang',
'a5':'Naga K. Govindaraju',
'a6':'Qiong Luo',
'a7':'Pedro V. Sander'}}
我將鍵0的值分開,並在其上創建圖,類似地,將鍵1的值分開,我可以在其值上創建圖。 但是我無法連接兩個圖的節點
keys = list(authors .keys())
tups = list(zip(keys, keys[1:]+keys[0:1]))
g = nx.Graph()
for a,b in tups:
g.add_edge(authors[a], authors[b])
nx.draw(g)
plt.draw()
plt.show()
只是不要創建兩個圖。 在同一圖中,在兩個組(或論文)的所有作者之間添加邊。 這將確保如果同一位作者是多篇論文的一部分,則將連接網絡。 如果兩個研究論文的作者完全不同,那么它將產生脫節的圖。
請嘗試以下操作:
通常,每個作者在紙上彼此聯系:
import itertools
import networkx as nx
authorlist = [list(paperauthors.values()) for papername, paperauthors in author.items()]
g = nx.Graph()
edgelist = [a1, a2 for paperauthors in authorlist for a1, a2 in itertools.combinations(paperauthors, 2)]
g.add_edges_from(edgelist)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.