plt保存图片_掌握这几种方法,从此向图片边界空白说再见

Matplotlib可以非常方便的将数据处理和作图融为一体,最重要的其对数据可视化过程中图片的各种属性都可以灵活的控制。 其实可以这么说:只要你能想到的,用mpl都可以做出来!(肯定有人不服,服不服随便你,谁用谁知道)。 但是用mpl做过图的同学肯定遇到过这样一个头疼的问题,在保存图片的时候,边界上总有一些空白,这是我们不想要的。 在这篇文章里面我将介绍mpl几种不为常人所注意的几个技巧。*绝对难得的干货*

cb0081755cd57f776528297e98640a61.png

图1: Matplotlib绘制的嵌套饼图。左图为没有使用空白切边,右图是使用 pdfcrop 命令进行空白切除后的结果

切除空白边界的方法有很多种,主要分为两类,一类是前处理;一类是后处理。 所谓前处理就是使用一些绘图控制命令在绘图的过程中一步到位,将空白边界切掉。 而后处理指的是使用一些工具(比如AI)将保存出来的图片进行后期编辑,把空白边界切掉。 一般的使用某些图片编辑软件进行后处理肯定显得很麻烦,比如当你更新图片后,又得重新编辑一遍,又得重新切边。 这种方式显然不优雅,我们在做科研的过程中一定得珍惜生命,不要在不必要的环节浪费青春。 Matplotlib提供了一些绘图控制命令可以进行前处理,我还会介绍一种更方便的后处理命令 pdfcrop 而不是用一些可视化的软件进行。

前处理

Matplotlib有很多函数或者参数进行画布的重新布局或重新设计大小。 比如 tight_layout(), subplots_adjust() 函数和 savefig 函数中的 bbox_inches 参数等。 下面介绍我经过长期的实践总结出来的几种常用的有效的前处理方式。

tight_layout

tight_layout 函数是用于自动布局画布和画布上的图形元素的, 可以通过里面的参数让整个画布更紧凑一些。 虽然这个函数有好几个参数: pad, h_pad, w_pad, rect , 但是其功能有限,甚至不好操作。 推荐一般直接用 plt.tight_layout() 或者 plt.tight_layout(pad=0.05) ,如果对图片布局或者边界空白无太多要求的情况下,这个就够了。

如果前面对坐标轴设置了比例关系: ax.axis('scaled') ,则慎用这个自动布局函数! 否则会破坏坐标系的比例关系。这种情况下一般用于纵横轴表示长度或者空间坐标的情况,因为这种情况纵横坐标的尺度比应该是1。 其他情况一般不

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值