如何在matplotlib中插入subplot下面的文本?

Joh*_*ohn 2 python matplotlib python-2.7

我正在使用matplotlib

#Plot
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

fig = plt.figure(figsize=(8,8))
gs1 = gridspec.GridSpec(1, 2)
gs1.update(wspace=0.025, hspace=0.05)  # set the spacing between axes.

ax1 = plt.subplot(gs1[0])
ax2 = plt.subplot(gs1[1])
ax1.axis('off')
ax1.set_xlabel('(a)')
ax2.axis('off')
ax2.set_xlabel('(b)')
Run Code Online (Sandbox Code Playgroud)

因为我必须在图中关闭轴,因此,我使用了ax1.axis('off').现在,我想在每个子图下方插入图形描述,例如(a),(b).我使用xlabel但由于功能无法工作axis('off').我可以通过使用.text函数来获得其他选项,但它需要已知的位置.就我而言,文本必须位于每个子图的下方并居中.我该如何实现它.谢谢我的预期结果是

在此输入图像描述

Imp*_*est 9

问题是如果axis("off")设置,则从图中移除 xlabel (与作为轴的一部分的所有其他艺术家一起).

但是,您可以在轴下方使用一些普通文本标签来模仿xlabel.

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

fig = plt.figure(figsize=(8,8))
gs1 = gridspec.GridSpec(1, 2)
gs1.update(wspace=0.025, hspace=0.05)  # set the spacing between axes.

ax1 = plt.subplot(gs1[0])
ax1.imshow([[0,1],[2,1]])
ax2 = plt.subplot(gs1[1])
ax2.imshow([[2,1],[0,1]])

ax1.axis('off')
ax2.axis('off')

ax1.text(0.5,-0.1, "(a) my label", size=12, ha="center", 
         transform=ax1.transAxes)
ax2.text(0.5,-0.1, "(b) my other label", size=12, ha="center", 
         transform=ax2.transAxes)

plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

更改-0.1将在轴和文本之间提供更多或更少的空间.