首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在networkx中从字典中创建有向图?

如何在networkx中从字典中创建有向图?
EN

Stack Overflow用户
提问于 2021-08-07 19:13:22
回答 1查看 113关注 0票数 0

我有大约10,000个出版物有入站或/和出站引用。

数据格式如下(以两个条目为例):

代码语言:javascript
复制
# each 'number' is a 'paper_id'
citations = {
    '157553241': { 
        'inbound_citations': [],
        'outbound_citations': [
            '141919793',
            '158546657',
            '156580052',
            '159778536',
            '157021328',
            '158546657',
            '157021328',
            '141919793',
            '153005744',
            '159778536',
            '112335878',
            '156580052'
        ]
    },
    '54196724': {
        'inbound_citations': ['204753337', '55910675'],
        'outbound_citations': ['153776751', '141060228', '33718066', '158233543']
    },
}

如何将此格式转换为可以提供给networkx的格式

我想找到最“核心”的论文,并发现一些小团体(首先)。

我试过了

代码语言:javascript
复制
G = nx.DiGraph(citations)

但我不认为它是那样的.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-07 19:23:49

您需要构建一个边列表,如下所示:

代码语言:javascript
复制
import networkx as nx
import matplotlib.pyplot as plt

edges = []
for node in citations:
    for parent in citations[node]['inbound_citations']:
        edges.append((parent, node))
    for child in citations[node]['outbound_citations']:
        edges.append((node, child))

G = nx.DiGraph()
G.add_edges_from(edges)

nx.draw(G, with_labels=True)
plt.show()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68695444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档