如何为我的networkx图指定精确的输出大小?

56

http://imgur.com/7wiRw.png

以上是我当前图表的输出结果。然而,我还没有达到自己的目标。我需要将我的图表以更大的尺寸输出,这样每个节点/边都能更轻松地查看。

我试过nx.draw(G, node_size=size),但那只会增加节点的大小,而不是节点和边之间的距离。

3个回答

99

你可以尝试使用更小的节点/字体或更大的画布。以下是同时实现两者的方法:

import networkx as nx
import matplotlib.pyplot as plt

G = nx.cycle_graph(80)
pos = nx.circular_layout(G)

# default
plt.figure(1)
nx.draw(G,pos)

# smaller nodes and fonts
plt.figure(2)
nx.draw(G,pos,node_size=60,font_size=8) 

# larger figure size
plt.figure(3,figsize=(12,12)) 
nx.draw(G,pos)
plt.show()

18

看起来你的网络布局过于“混乱”,你可能想尝试不同的图形布局算法,看看哪个最适合你。

nx.draw(G)  
nx.draw_random(G)  
nx.draw_circular(G)  
nx.draw_spectral(G)  
nx.draw_spring(G)  

此外,如果你有太多节点(比如数千个),那么可视化图形可能会成为一个问题。


2

您可以增加图形的大小并设置dpi。 如果dpi降低,节点将会更加分散。

G = nx.Graph()
# Add edges
fig = plt.figure(1, figsize=(200, 80), dpi=60)
nx.draw(G, with_labels=True, font_weight='normal')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接