我有一个.txt格式的数据集,我想将其绘制成图形。此txt提供如下数据:
68 57
65 86
67 83
105 156
等等,所以它是一个边缘主义者
import networkx as nx
import numpy as py
import copy
import matplotlib.pyplot as plt
network0=nx.read_edgelist(r'C:\Users\alexl\Documents\new_python\init_edgelist.txt',create_using=nx.DiGraph)
nx.draw(network0)
plt.show()
在这些之后,我可以看到一个绘制的有向图,正如我所想,它有错误的拓扑结构。节点和边已正确连接,但没有位置信息。 我尝试在此文件中导入另一个包含3列的.txt(节点x y),例如:
2 478909.145 4204244.629
为此:
coordinates=py.loadtxt(r'C:\Users\alexl\Documents\new_python\nodes_coordinates.txt')
pos=coordinates
nx.draw(network0,pos=pos,with_labels=True)
plt.show()
但似乎不起作用。
索引器:只有整数、片(:
)、省略号(...
)、numpy.newaxis(None
)和整数或布尔数组是有效的索引<<&书信电报;这就是我尝试运行此操作时控制台中显示的内容。
我想这是因为坐标是浮动的??或者txt给出的,他们组成一个列表,我们想要一本字典?之后,我想将权重(0,1,2)添加到边上,但首先我想看到数据按照拓扑“正确”绘制
nx.draw期望
pos
成为一个字典,因为它们的键是节点,值是位置假设您希望将输入读取为numpy数组,您可以做的是
否则,您可以迭代文件的行,直接构建字典
相关问题 更多 >
编程相关推荐