我无法更改matplotlib中子图之间的距离

时间:2019-03-29 08:57:42

标签: python matplotlib

我对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'

Image of the plot

非常感谢您提供任何帮助!

编辑:添加了绘图的图像。

1 个答案:

答案 0 :(得分:0)

正如@ImportanceOfBeingErnest所指出的,解决方案是使用top的{​​{1}}和bottom参数。就我而言,subplots_adjust()是我所需要的。