【解决方案】Python作图:Matplotlib savefig()和show()方法得到的图片不一样

文章目录

前言

创作开始时间:2021年3月31日15:48:09

如题。关键:把plt.show()放到figure.savefig()之前。

正文

最近发现:

figure = plt.gcf()
figure.set_size_inches(13, 12)
plt.tight_layout()
figure.savefig(os.path.join(cur_dir_path,f"{col_name}.pdf"), dpi=800)
plt.show()

savefig()和show()方法得到的图片不一样,比如字体大小,以及背景颜色,以及figure的大小(figsize)都不一样。

难受的很。

在参考一系列文献之后,发现需要把plt.show()放到figure.savefig()之前。即:

figure = plt.gcf()
figure.set_size_inches(13, 12)
plt.tight_layout()'
plt.show()
figure.savefig(os.path.join(cur_dir_path,f"{col_name}.pdf"), dpi=800)

此时发现基本一致(可以接受)了。

**备注:**至于内在原理,目前还没找到,这个也是摸索发现的。因为解决方案太多,但是有些不好用或者不能用。只有这个比较符合我的预期。遂使用之。

最主要参考:

  • matplotlib savefig() plots different from show() https://stackoverflow.com/questions/7906365/matplotlib-savefig-plots-different-from-show

其他:

  • How to save a Matplotlib figure as a certain size in Python https://www.kite.com/python/answers/how-to-save-a-matplotlib-figure-as-a-certain-size-in-python
  • How to make pylab.savefig() save image for ‘maximized’ window instead of default size https://stackoverflow.com/questions/10041627/how-to-make-pylab-savefig-save-image-for-maximized-window-instead-of-default
  • matplotlib: inconsistency between savefig and show https://stackoverflow.com/questions/25409629/matplotlib-inconsistency-between-savefig-and-show

小结

以上。

创作结束时间:2021年3月31日15:51:55

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值