Я хочу визуализировать свои данные. мои данные выглядят так: мой файл данных: 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, это полный беспорядок.
Я хочу, чтобы выходные данные были такими же, как в cytospace, но выходные данные cytospace имеют ссылки и не могут устанавливать расстояние между узлами.
networkx может устанавливать краевое расстояние между узлами и может только рисовать узлы (это то, что я хочу), но макет совершенно беспорядочный, я хочу показать некоторый кластер :-)
Кажется, что cytospace использует силовую схему, а я использую силовую схему в networkx, но результат совершенно другой.
кто-нибудь может мне помочь? Спасибо