如何在使用pyplot.show()时保持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 [毫米] 变成
- 213 x 250 [毫米]
我该怎么做才能保持它的大小不变呢?
1 个回答
6
在
show()
这个函数对图形大小的影响,取决于你使用的matplotlib后端。例如,当我使用TkAgg后端(这是我系统的默认设置)时,图形的宽度和高度大约增加了12个像素。但当我切换到WXAgg后端时,图形的大小反而变小了。
另外,手动调整show()
显示的窗口大小也会改变图形的大小。而且,如果显示的图形需要的窗口太大,超出了屏幕的范围,那么窗口的大小会被缩小,图形的大小也会相应减少。
总之,最好的办法是在渲染PDF之前重置图形的大小。也就是说:
fig.set_size_inches(8.27, 11.69)
fig.savefig('test.pdf')