Plt.show显示完整的图形,但savefig正在裁剪图像

时间:2016-05-25 03:35:53

标签: python matplotlib

我的代码成功地将图像保存到文件中,但它正在从右侧裁剪重要的细节。当plt.show出现问题时,存在Answers来修复此问题,但是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

2 个答案:

答案 0 :(得分:71)

您可以尝试

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

或者您可以定义数字大小,如

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

答案 1 :(得分:3)

documentation 中所述,您也可以尝试:

plt.tight_layout()