我对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'
。
非常感谢您提供任何帮助!
编辑:添加了绘图的图像。
答案 0 :(得分:0)
正如@ImportanceOfBeingErnest所指出的,解决方案是使用top
的{{1}}和bottom
参数。就我而言,subplots_adjust()
是我所需要的。