我想绘制距离矩阵的图形。代码工作正常,并给我一个图像。图像很大,但所有节点都打包在一起。我想增加节点之间的空间。 我希望节点分开更多而不是放大。使节点更加分离(图形可视化)
我试过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