距離行列からグラフをプロットしようとしています。コードは正常に機能し、画像が表示されます。画像は大きいですが、すべてのノードが一緒にパックされています。ノード間のスペースを増やしたい。ノードを拡大せずにもっと離してほしい。
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ノードのGraphvixNEATOの出力-