【发布时间】:2019-03-29 19:58:13
【问题描述】:
我对 python 很陌生,我正在将两个 imshow 对象绘制成一个图形,一个在另一个下方。但是,我无法更改两个对象之间的水平距离,即它们相距太远。
按照Improve subplot size/spacing with many subplots in matplotlib的建议,我尝试过使用plt.tight_layout()和plt.subplots_adjust,但完全不影响剧情。
这就是我创建绘图的方式(我省略了定义要绘制的数组的部分以及imshow 绘图的属性):
fig = plt.figure()
ax1 = fig.add_subplot(211)
ax1.imshow(help_vector, cmap=cmap, norm=norm)
ax2 = fig.add_subplot(212)
ax2.imshow(plot_vector, cmap=cmap, norm=norm)
我不知道这是否重要,但两个子图都有标题,整个图都有标题,第二个子图旁边有一个“图例”,这是我使用以下代码创建的:
patches = [mpatches.Patch(color='lime', label = 'No relevant error'), mpatches.Patch(color='yellow',label='Medium error'), mpatches.Patch(color='orange',label='Large error'), mpatches.Patch(color='red',
label='Unacceptable')]
plt.legend(handles=patches, bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0)
当使用savefig 存储图像时,我添加了参数bbox_inches='tight'。
非常感谢任何形式的帮助!
编辑:添加了情节的图像。
【问题讨论】:
-
能否请您提供结果图,以便我们了解您所说的“相距太远”是什么意思?
-
plt.subplots_adjust会工作。您需要使用top和bottom参数。 -
@ImportanceOfBeingErnest 成功了!非常感谢!我只使用了
hspace参数,因此它不起作用。
标签: python matplotlib