我想繪製距離矩陣的圖形。代碼工作正常,並給我一個圖像。圖像很大,但所有節點都打包在一起。我想增加節點之間的空間。 我希望節點分開更多而不是放大。使節點更加分離(圖形可視化)
我試過Graphviz NEATO,但問題是它只支持100個節點,因爲我有1000個節點,它顯示了10個節點,每個節點有100個節點。
我的總代碼 -
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的輸出 -
在你的新代碼這條線上的pos是什麼? '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)。在繪圖參數中沒有任何東西可以幫助 – Anirudh
嘗試node_size例如'node_size = 15' – rputikar