Py学习  »  Python

python中不同图的相同节点之间的连接

Talha Anwar • 5 年前 • 1726 次点击  

我想在不同研究论文的作者之间建立图表。 我能在同一篇论文的所有作者之间创建一个图表。但我无法将它与其他图形连接起来。

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。我的问题是如何连接这两个节点 graph having values of key 0

graph having values of key 1

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43361
 
1726 次点击  
文章 [ 2 ]  |  最新文章 5 年前
ComplexGates
Reply   •   1 楼
ComplexGates    6 年前

通常每个作者在论文中都是相互联系的:

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)
Jay
Reply   •   2 楼
Jay    6 年前

只是不要创建两个图。在同一图形中添加两个组(或论文)的所有作者之间的边。这将确保如果同一作者是多篇论文的一部分,网络将连接起来。如果两篇研究论文的作者完全不同,那么它将产生不相交的图。

请尝试以下操作:

  • 图中的每个节点都应该表示一个作者(不管 他/她属于哪个组(或研究论文类别)。
  • 作者之间的边可以表示组(或研究论文) 基于它们的连接。