尽管使用pyplot.show(),我如何使用matplotlib保持图形大小不变?

时间:2011-03-09 07:27:34

标签: python matplotlib

查看以下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] to
  • 213 x 250 [mm]

为了保持不变,我该怎么做?

1 个答案:

答案 0 :(得分:6)

SciPy网站的matplotlib数据中调整图像大小有一个很好的演示。

show()对数字大小的影响取决于使用哪个matplotlib后端。例如,当我使用TkAgg后端(我的系统上的默认值)时,它增加了大约12个像素的宽度和高度。但是当我切换到WXAgg后端时,数字大小实际上已经减少了。

此外,手动调整show()显示的窗口大小也会改变图形大小。此外,如果显示图形需要一个窗口太大的窗口,那么窗口尺寸将减小,并且图形尺寸也相应减小。

在任何情况下,最好的选择可能是在渲染pdf之前重置数字大小。即:

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