如何在使用pyplot.show()的情况下保持matplotlib中图形大小不变?

3
请看下面的Python示例:
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams['figure.figsize'] = [8.27, 11.69]
fig = plt.figure()
plt.show() # This line causes problems with figsize
fig.savefig('test.pdf')

如果我使用"plt.show()",test.pdf的图像尺寸会发生很大变化(从210 x 297 [mm] 变成213 x 250 [mm])。为了保持尺寸不变,我应该怎么做?
1个回答

6

SciPy网站上有一个很好的演示,演示了如何调整matplotlib图像的大小。

show()对图形大小的影响取决于所使用的matplotlib后端。例如,当我使用TkAgg后端(我的系统默认后端)时,它会将大约12个像素添加到图形的宽度和高度中。但是当我切换到WXAgg后端时,图形大小实际上会减小。

此外,手动调整show()显示的窗口大小也会更改图形大小。此外,如果显示图形需要一个屏幕太大的窗口,则窗口大小将被缩小,并相应地减小图形大小。

无论如何,最好的方法可能是在呈现pdf之前重置图形大小,即:

fig.set_size_inches(8.27, 11.69)
fig.savefig('test.pdf')

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