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

Posted

技术标签:

【中文标题】如何为我的 networkx 图指定精确的输出大小?【英文标题】:How can I specify an exact output size for my networkx graph? 【发布时间】:2011-04-03 18:43:20 【问题描述】:

以上是我当前图表的输出。但是,我还没有管理我想要实现的目标。我需要以更大的尺寸输出我的图形,以便可以轻松查看每个节点/边。

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

【问题讨论】:

【参考方案1】:

您可以增加绘图的大小以及设置 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')

【讨论】:

【参考方案2】:

由于您的网络布局似乎太“杂乱”,您可能想尝试不同的图形布局算法,看看哪一种最适合您。

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

此外,如果您有太多节点(比如说几千个),则可视化您的图表可能会成为问题。

【讨论】:

【参考方案3】:

您可以尝试更小的节点/字体或更大的画布。以下是两者兼得的方法:

import matplotlib.pyplot as plt
import networkx as nx
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()

【讨论】:

以上是关于如何为我的 networkx 图指定精确的输出大小?的主要内容,如果未能解决你的问题,请参考以下文章

Quartz Composer - 如何为Core Image过滤器指定目标大小?

如何为 iPhone 6+、6 和 5 指定不同的尺寸?

如何为 scikit-learn 的高斯过程回归指定先验?

添加边缘权重以在 networkx 中绘制输出

如何为 softmax 分类指定 onehot 标签数组的形状?

R语言ggplot2可视化:在条形图标签上指定精确的小数点位数在条形图上输出数字标签并设置指定的小数位个数