Show 显示完整的图形,但 savefig 正在裁剪图像

我的代码成功地将图像保存到文件中,但是它从右边裁剪了重要的细节。当 plt.show出现这个问题时,答案可以解决这个问题,但是在这个示例中错误地生成图的是 savefig命令。这怎么能修好呢?

我的代码的相关示例:

import glob
import os
for file in glob.glob("*.oax"):
try:
spc_file = open(file, 'r').read()
newName = file[6:8] + '-' + file[4:6] + '-' + file[0:4] + ' ' + file[8:12] +  ' UTC (Observed) - No Sea Breeze Day'
plt.title(newName, fontsize=12, loc='left')
plt.savefig('X:/' + newName + '.png')
plt.show()
except Exception:
pass

图像(上图是 plt.show,下图是由 savefig生成的文件:

Image when shown with plt.show Image when saved to file


107455 次浏览

你可以试试

plt.savefig('X:/' + newName + '.png', bbox_inches='tight')

或者您可以定义图形大小,如

fig = plt.figure(figsize=(9, 11))
...
plt.savefig(filename, bbox_inches = 'tight')

文件所述,您还可以尝试:

plt.tight_layout()

另一个非常简单的解决方案是将绘图保存为 . pdf格式。当 bbox_inches = 'tight'plt.tight_layout()没有帮助的时候,这对我有很多次的效果。

句法正义:

plt.savefig('X:/' + newName + '.pdf')