这是我的可视化代码:

f, ax = plt.subplots(1, 2)
for i, img in enumerate([img1, img2]):
    grads = # my visualization codes
# visualize grads as heatmap
ax[i].imshow(grads, cmap='jet')


如何保存使用imshow显示的内容?任何意见是极大的赞赏!

最佳答案

保存整个图形很简单,只需使用savefig函数:

f.savefig('filename.png')


您可以保存多种文件格式,通常可以从文件名的扩展名中正确推断出这些文件格式。有关更多信息,请参见the documentation

savefig函数采用参数bbox_inches,该参数定义要保存图形的区域。要将单个子图保存到文件中,可以使用子图的Axes对象的边界框来计算适当的值。

将所有内容放在一起,您的代码将如下所示:

f, ax = plt.subplots(1, 2)
for i, img in enumerate([img1, img2]):
    grads = # my visualization codes
    # visualize grads as heatmap
    ax[i].imshow(grads, cmap='jet')

    # Save the subplot.
    bbox = ax[i].get_tightbbox(f.canvas.get_renderer())
    f.savefig("subplot{}.png".format(i),
              bbox_inches=bbox.transformed(f.dpi_scale_trans.inverted()))

# Save the whole figure.
f.savefig("whole_figure.png")

08-07 17:08