如何为我的 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过滤器指定目标大小?