matplotlib 仅保存图的内部区域

6za6bjd0  于 2023-11-22  发布在  其他
关注(0)|答案(1)|浏览(126)

我想只保存情节的内部区域。情节(我必须保存的区域)有一个固定的高宽比。
因此,我必须只保存this,而不是保存this
做这件事最简单的方法是什么?
我所尝试的:
我可以先保存原始文件,然后使用PIL裁剪它。这很有效,但是如果图形的大小改变了,我必须通过反复试验再次手动设置所有四个值.

im.crop((left, top, right, bottom))

字符串
简单地禁用轴可视化并保存图形的完整区域对于我的特定应用程序并不理想。
我也试过这个solution,但我的轴不开始和结束完全在一个滴答声,所以我不能这样做。

wbgh16ku

wbgh16ku1#

你链接的答案是相关的,但不是从特定的数据值开始,你可以从ax.get_position()开始,它给你的轴边界框作为数字分数。然后你可以使用fig.transFigure变换从数字分数到像素空间。然后,像前面的答案一样,使用反向dpi_scale_trans变换从像素空间到英寸。
我还在这里设置了脊柱不可见,所以你不会得到一个黑线周围的图像边缘。

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.set_facecolor("palegreen")
ax.set_aspect(1)
ax.plot(range(5), "o-")
ax.spines[:].set_visible(False)

bbox = ax.get_position().transformed(fig.transFigure).transformed(fig.dpi_scale_trans.inverted())

fig.savefig("test.png", bbox_inches=bbox)

字符串


的数据

相关问题