前言
今天有个任务,需要基于Matplotlib的Pyplot来保存一大批矢量图,然而存在坐标轴和填充距离等影响图片质量的细节,于是经过探索,找到了保存大量纯矢量图的方法,仅需四行代码完成。
想到将图片保存,于是采用savefig()来实现保存,以下是代码实现:
plt.imshow(img)
plt.savefig(location, bbox_inches='tight')
plt.clf()
效果图:
发现有坐标轴,于是加上了一行来去掉坐标轴,代码如下:
plt.axis("off")
plt.imshow(img)
plt.savefig(location, bbox_inches='tight')
plt.clf()
发现还有一个窄窄的边框(我在图中用红色表示),于是想到是否存在其他参数来解决,经过研究发现bbox_inches的作用是调整图的边界框(bounding box)。
当bbox_inches设为'tight'时,会计算出距该图像的紧(tight)边界框bbox,并将该选中的框中的图像保存。
然而如果需要清楚填充距离,可以使用pad_inches,它的作用是当前面的bbox_inches为'tight'时,调整图像和bbox之间的填充距离。
加上pad_inches=0后,代码和效果图如下:
plt.axis("off")
plt.imshow(img)
plt.savefig(location, bbox_inches='tight', pad_inches=0)
plt.clf()
完成!
总结
以上就是今天要讲的内容,本文仅仅简单介绍了如何基于Matplotlib的Pyplot来保存一大批矢量图,仅需四行代码完成细节优化,可以直接复制使用。