从 matplotlib 图中去除边距

3
我希望使用matplotlib中的imshow函数绘制一个NumPy数组,并将其保存为JPEG图像。但是,我无法去除图像的边距/填充/边框。

我的代码:

plt.imshow(np.arange(20).reshape(5,4)) ;
plt.axis('off')
plt.savefig('test.jpg', bbox_inches='tight', pad_inches=0, facecolor='black')

我在Stackoverflow上遵循了所有建议,但是都没有帮助我去除下面所示的不均匀的白色边框(我在这个图中将它们变成了黑色):

enter image description here


答案一解决了你的问题吗? - welch
可能是在matplotlib中删除保存图像周围的空白的重复问题。 - thedoctar
答案在这里: https://dev59.com/MWgt5IYBdhLWcg3wwwK-#27227718 - thedoctar
2个回答

0

正如https://dev59.com/Xmox5IYBdhLWcg3wTina#26610602中所描述的那样,同样重要的是调用:

fig.axes.get_xaxis().set_visible(False)
fig.axes.get_yaxis().set_visible(False)

同时使用pad_inches=0。这将移除图像左侧和底部的额外空间。


0

将 pad_inches 设置为 -1 对我有用(保存为 png)。

我怀疑 pad_inches=0 被解释为“假值”并被忽略了。


3
很遗憾,这也会移除图像的部分。 - John Manak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接