我正在尝试创建一张没有坐标轴的栅格数据等值线图。我成功地创建了等值线图,但我无法完全删除坐标轴。我可以使用 plt.axis('off')
命令关闭它们,但是坐标轴周围的空白区域仍然存在。
我的操作步骤如下:
cnt = plt.contour(my_data)
plt.clabel(cnt, inline=1, fontsize=10)
plt.axis('off')
编辑 我的输出方式
plt.savefig(image_path, transparent=False, bbox_inches='tight', pad_inches=0)
结果: 在
plt.axis('off')
之前
在plt.axis('off')
之后
我遇到了与imshow相同的问题,但我已经在这里找到了解决方法here,然而,相同的技术无法用于轮廓。那么,如何绘制没有轴和任何留下的白色空格的轮廓?
编辑 因此,我设法确定问题不在代码的'plt.axis('off')'部分。该行实际上完全删除了轴,当我调用plt.show()时它是可见的,但是当我尝试使用'plt.savefig()'保存图形时,我会得到不想要的白色空格。为什么会这样?
我的代码和输出:
cnt = plt.contour(my_data)
plt.clabel(cnt, inline=1, fontsize=10)
plt.axis('off')
# no whitespaces
plt.show()
# whitespaces are present
plt.savefig(image_path, transparent=False, bbox_inches='tight', pad_inches=0)
可能的解决方案吗!? 我已经找到了一种方法,可以通过以下方式使我的图像接近我想要的效果:
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
plt.contour(data)
extent = ax.get_window_extent().transformed(fig.dpi_scale_trans.inverted())
plt.axis('off')
plt.savefig(image_path, transparent=False, bbox_inches=extent, pad_inches=0)
然而我无法改变绘图的纵横比。我认为我没有充分理解这个解决方案。
plt.tight_layout()
,也许可以解决您的问题。 - Imanol Luengotight_layout
只会改变轴的大小,没有其他影响。DomagojHack 遇到的问题是因为在保存时,savefig
会覆盖图形的面颜色。 - Joe Kington