gpt4 book ai didi

Python:根据数据绘制网络图

转载 作者:太空宇宙 更新时间:2023-11-04 03:48:12 25 4
gpt4 key购买 nike

我有以下数据集:

firm_id_1 firm_id_2
1 2
1 4
1 5
2 1
2 3
3 2
3 6
4 1
4 5
4 6
5 4
5 7
6 3 ....

我想绘制 firm_id = 1 的网络图。换句话说,我想看到一个图表,显示 firm_id = 1 直接连接到 2、4、5,并通过公司 2 间接连接到 3,通过公司 4 间接连接到 6通过公司 5 连接到 7。换句话说,我绘制了从 firm_id=1 开始到每个节点 (firm_id) 的最短距离。我的数据中有 3000 个节点,我知道公司 1 在不到 9 个顶点中到达所有节点。我怎样才能用 Python 绘制这个图形?

最佳答案

我将从一个名为 NetworkX 的库开始.我不确定我是否理解您正在寻找的所有内容,但我认为这应该足够接近您可以修改它。

该程序将从文本文件 graphdata.txt 中加载数据,按空格分隔,并将该对添加为边。

然后它将计算从 1 到所有节点的最短路径,然后如果距离大于 9 则打印...参见 documentation了解更多详情。

最后,它将使用 spring 布局将图形呈现到名为 mynetwork.png 的文件和屏幕。

3000 个节点可能/可能不需要某些优化。

希望这对您有所帮助!

import networkx as nx
import matplotlib.pyplot as plt

graph = nx.Graph()
with open('graphdata.txt') as f:
for line in f:
firm_id_1, firm_id_2 = line.split()
graph.add_edge(firm_id_1, firm_id_2)

paths_from_1 = nx.shortest_path(graph, "1")
for path in paths_from_1:
if len(paths_from_1[node]) > 9:
print "Shortest path from 1 to", node, "is longer than 9"


pos = nx.spring_layout(graph, iterations=200)
nx.draw(graph, pos)
plt.savefig("mynetwork.png")
plt.show()

关于Python:根据数据绘制网络图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22625269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com