Пока я немного опаздываю к игре, я дам здесь другое решение, так как это по-прежнему одна из первых ссылок, которая появляется в Google.Используя matplotlib 2.2.2, этого можно добиться с помощью функции gridspec.В приведенном ниже примере цель состоит в том, чтобы расположить четыре вспомогательных участка в формате 2x2 с легендой, показанной внизу.Внизу создается ось 'faux', чтобы разместить легенду в фиксированном месте.Затем ось «faux» отключается, поэтому отображается только легенда.Результат: https://i.stack.imgur.com/5LUWM.png.
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
#Gridspec demo
fig = plt.figure()
fig.set_size_inches(8,9)
fig.set_dpi(100)
rows = 17 #the larger the number here, the smaller the spacing around the legend
start1 = 0
end1 = int((rows-1)/2)
start2 = end1
end2 = int(rows-1)
gspec = gridspec.GridSpec(ncols=4, nrows=rows)
axes = []
axes.append(fig.add_subplot(gspec[start1:end1,0:2]))
axes.append(fig.add_subplot(gspec[start2:end2,0:2]))
axes.append(fig.add_subplot(gspec[start1:end1,2:4]))
axes.append(fig.add_subplot(gspec[start2:end2,2:4]))
axes.append(fig.add_subplot(gspec[end2,0:4]))
line, = axes[0].plot([0,1],[0,1],'b') #add some data
axes[-1].legend((line,),('Test',),loc='center') #create legend on bottommost axis
axes[-1].set_axis_off() #don't show bottommost axis
fig.tight_layout()
plt.show()