Graph 使节点更加分离(图形可视化)

Graph 使节点更加分离(图形可视化),graph,matplotlib,graphviz,networkx,graph-visualization,Graph,Matplotlib,Graphviz,Networkx,Graph Visualization,我正试图从距离矩阵中画出一幅图。代码运行良好,给了我一个图像。图像很大,但所有节点都打包在一起。我想增加节点之间的空间。 我希望节点之间的距离更大,而不是更大 我尝试了Graphviz NEATO,但问题是它只支持100个节点,因为我有1000个节点,它显示了10个集群,每个集群有100个节点 我的总体代码- import networkx as nx import pickle import matplotlib.pyplot as plt print "~~~Unpickle." p_fil

我正试图从距离矩阵中画出一幅图。代码运行良好,给了我一个图像。图像很大,但所有节点都打包在一起。我想增加节点之间的空间。 我希望节点之间的距离更大,而不是更大

我尝试了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输出-

来自文档:


图(num=None,figsize=(8,6),dpi=80,facecolor='w',edgecolor='k')

所以图(figsize=(10,10))创建了一个10英寸×10英寸的图像,它将是800×800像素

如果要打印大型网络图,最简单的方法是增加DPI

尝试以下方法:


plt.图(num=None,figsize=(10,10),dpi=1200)。这将生成一个大的图像文件。

您也可以尝试打印pdf


plt.savefig(“graph.pdf”)

使用此选项,最终图形将不会光栅化

要更改节点之间的距离,可以使节点变小或更改布局。改变 布局很难做好

尝试布局中的缩放选项 比如说,


比例=2

将使所有节点之间的距离加倍

因此,在您的示例中,更改行


nx.绘图(G)

您还可以使用不同的布局,有关详细信息,请参见

来自文档:


图(num=None,figsize=(8,6),dpi=80,facecolor='w',edgecolor='k')

所以图(figsize=(10,10))创建了一个10英寸×10英寸的图像,它将是800×800像素

如果要打印大型网络图,最简单的方法是增加DPI

尝试以下方法:


plt.图(num=None,figsize=(10,10),dpi=1200)。这将生成一个大的图像文件。

您也可以尝试打印pdf


plt.savefig(“graph.pdf”)

使用此选项,最终图形将不会光栅化

要更改节点之间的距离,可以使节点变小或更改布局。改变 布局很难做好

尝试布局中的缩放选项 比如说,


比例=2

将使所有节点之间的距离加倍

因此,在您的示例中,更改行


nx.绘图(G)


您还可以使用不同的布局,有关详细信息,请参见

在您的新代码中,这行的pos是什么<代码>nx.draw(G,pos,node_color='#A0CBE2',edge_color='none',width=1,edge_cmap=plt.cm.Blues,with_labels=False)尝试在前面写一行。或者尝试不同的布局。
pos=nx.spring\u布局(G,比例=2)
也尝试了graphviz\u布局(G),圆形布局(G,比例=2)。在draw参数中没有任何帮助请尝试node_size,例如在新代码中,node_size=15此行的位置是什么<代码>nx.draw(G,pos,node_color='#A0CBE2',edge_color='none',width=1,edge_cmap=plt.cm.Blues,with_labels=False)尝试在前面写一行。或者尝试不同的布局。
pos=nx.spring\u布局(G,比例=2)
也尝试了graphviz\u布局(G),圆形布局(G,比例=2)。在draw参数中没有任何帮助请尝试node_size,例如
node_size=15
pos = nx.circular_layout(G, scale=2)
nx.draw(G, pos)