gpt4 book ai didi

python - matplotlib:子图 y 轴太压扁,pdfpages 仅输出到一页

转载 作者:太空宇宙 更新时间:2023-11-04 05:08:58 27 4
gpt4 key购买 nike

我正在尝试创建多个(>100)个子图供以后分析。最大 5x5 的网格似乎可以正常工作,任何大于 5x5 的网格都会开始变得非常压扁,整个内容变得不可读。我尝试了各种不同的方法,例如设置方面等,但无济于事。

这是 5x50 网格的输出: squashed subplots

这是我的代码:

from matplotlib.backends.backend_pdf import PdfPages
pp = PdfPages('./output.pdf')

num_investigate = len(investigate)

ncols = 5
nrows = 50#math.ceil(num_investigate/ncols)

fig, axs = plt.subplots(nrows=nrows, ncols=ncols, sharex=False, figsize=(15,15))


for ax, file in zip(axs.flat, investigate[:(ncols*nrows)]):
try:
df = get_df_from_csv(file)
df['perf'] = df['val'] / df['val'].ix[0] - 1
#ax.set_ylim(bottom=df['perf'].min(), top=df['perf'].max())
ax.set_aspect('auto')
df['perf'].plot(ax=ax, title=file)
except:
pass

plt.tight_layout()
pp.savefig()
pp.close()

经过大量研究,我真的不知道如何解决这个问题。

如何确保每个子图的大小是恒定的并且输出到多个 pdf 页面?

谢谢

最佳答案

PdfPages 将一个 matplotlib 图保存到一页。第二次调用 savefig 命令将导致创建第二页。因此,如果您想要输出 pdf 中的第二页,则需要创建第二张图。

例如您可以生成第一个带有 5x5 网格的图形,并将前 25 个图放在该图形中,然后保存。然后创建下一个图形,将接下来的 25 个图添加到它并再次保存。

有一个multipage_pdf example在 matplotlib 页面上。

关于python - matplotlib:子图 y 轴太压扁,pdfpages 仅输出到一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43568924/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com