【问题标题】:Connection between same nodes of different graph in pythonpython中不同图的相同节点之间的连接
【发布时间】:2019-01-28 23:32:22
【问题描述】:

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

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。我的问题是如何连接这两个节点

【问题讨论】:

  • nx 是做什么的?
  • @ma3oun 请原谅,我忘了提,我正在使用python别名的networkx库作为nx制作图形
  • 您将一个作者与两个相邻的作者联系起来有什么原因吗?通常,我们认为一篇论文的所有作者都形成了一个集团,其中每个人都与其他人联系在一起。

标签: python-3.x graph networkx


【解决方案1】:

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

尝试以下方法:

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

【讨论】:

  • 我的数据是dictionary of dictionary的形式..在其中的数据结构中,我必须先转换,然后才能将其传递给netowrkx库
  • 您能否发布您用于在问题中生成和显示图表的完整代码?
  • 它已经完整的代码。我只是将密钥称为 authors=authors[0],然后运行代码
【解决方案2】:

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

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 2021-04-17
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多