거리 매트릭스에서 그래프를 플롯하려고합니다. 코드가 잘 작동하고 나에게 이미지를 준다. 이미지는 크지 만 모든 노드가 함께 묶입니다. 나는 노드 사이의 공간을 늘리고 싶다. 노드가 더 멀리 떨어져 있지 않게하고 싶습니다.노드를 더 깔끔하게 만들기 (그래프 시각화)
그래도 Graphviz NEATO를 사용해 보았습니다.하지만 문제는 100 개의 노드 만 지원한다는 것입니다. 1000 개의 노드가 있으므로 100 개의 노드로 구성된 10 개의 클러스터를 각각 보여주었습니다.
내 전체 코드 -
import networkx as nx
import pickle
import matplotlib.pyplot as plt
print "~~~Unpickle."
p_file = open('pickles/names')
Names = pickle.load(p_file)
p_file.close()
p_file = open('pickles/distance')
Dist = pickle.load(p_file)
p_file.close()
G = nx.Graph()
print "~~~Inserting Nodes."
for store in Names:
G.add_node(store)
print "~~~Inserting Edges."
for i in range(601):
for j in range(601):
if Names[i]!=Names[j]:
G.add_edge(Names[i],Names[j],weight=Dist[i][j])
print "~~~Drawing Graph."
nx.draw(G,pos,node_color='#A0CBE2',edge_color='none',width=1, edge_cmap=plt.cm.Blues, with_labels=False)
print "~~~Saving Figure."
plt.savefig("graph.png", dpi=500, facecolor='w', edgecolor='w',orientation='portrait', papertype=None, format=None,transparent=False, bbox_inches=None, pad_inches=0.1)
print "~~~Success!"
출력 (가장자리와 라벨 제거) : 600 개 노드와 Graphvix NEATO의
출력 - figure 문서에서
새 코드에서이 행의 위치는 무엇입니까? 'nx.draw (G, pos, node_color = '# A0CBE2', edge_color = 'none', width = 1, edge_cmap = plt.cm.Blues, with_labels = False) '쓰기 시도'pos = nx.graphviz_layout (G)'한 줄 전에. 또는 다른 레이아웃을 사용해보십시오. – rputikar
'pos = nx.spring_layout (G, scale = 2)'도 graphviz_layout (G), circular_layout (G, scale = 2)을 시도했습니다.아무것도 draw 인수에서 – Anirudh
가 node_size를 시도하는 데 도움이됩니다. 'node_size = 15' – rputikar