簡體   English   中英

python中不同圖的相同節點之間的連接

[英]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()

緊隨這兩個圖的節點名稱均為Robert Lyle。 我的問題是如何連接這兩個節點 具有鍵0值的圖形

具有鍵1值的圖形

只是不要創建兩個圖。 在同一圖中,在兩個組(或論文)的所有作者之間添加邊。 這將確保如果同一位作者是多篇論文的一部分,則將連接網絡。 如果兩個研究論文的作者完全不同,那么它將產生脫節的圖。

請嘗試以下操作:

  • 圖表中的每個節點都應代表一個作者(無論他/她屬於哪個組(或研究論文類別)。
  • 作者之間的邊緣可以代表他們所基於的小組(或研究論文)。

通常,每個作者在紙上彼此聯系:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM