我想可视化我的数据。我的数据是这样的:我的数据文件是:https ://gist.github.com/anonymous/5568836
4556 5092 0.7000
4556 4785 0.7500
4556 5397 0.7000
4556 5139 0.7500
4556 5937 0.8333
4556 6220 0.7000
4556 5139 0.7500
4556 6220 0.7063
4559 4563 0.7500
4559 4770 0.7500
4559 4837 0.7500
4559 5640 0.7500
4559 4563 0.7500
4559 4770 0.7500
4559 4837 0.7500
4559 5640 0.7500
4561 4607 1.0000
4561 4600 0.7500
4561 4562 0.7500
4561 5090 0.7500
4561 5197 1.0000
4561 5182 0.7500
4561 5937 0.7500
4561 6143 0.7500
4561 5632 1.0000
第一个是源节点,第二个是目标节点,第三个是距离。我已经使用networkx来可视化它,我的代码是:
import matplotlib.pyplot as plt
import networkx as nx
G=nx.Graph()
#G=nx.star_graph(800)
filedata1 = open("1.txt",'r')
for line in filedata1:
datas = line.split()
G.add_node(int(datas[0]))
G.add_node(int(datas[1]))
G.add_edge(int(datas[0]),int(datas[1]),weight=float(datas[2]))
pos=nx.spring_layout(G)
nx.draw_networkx_nodes(G,pos,node_size=20,node_color='r')
plt.axis('off')
plt.savefig("data.png")
plt.show()
输出是:
和相同的数据,我使用 cytoscape,结果是:
cytoscape 似乎自动对数据进行聚类,所以我可以看到一些聚类,在 networkx 中,它完全一团糟。
我想像细胞空间一样输出,但细胞空间输出有链接,无法设置节点之间的距离。
networkx 可以设置节点之间的边缘距离并且只能绘制节点(这是我想要的),但是布局完全混乱,我想展示一些集群:-)
似乎细胞空间使用了力布局,我在networkx中使用了力布局,但输出完全不同。
谁能给我一些帮助?谢谢