Я видел эти хорошие решения для создания нескольких вспомогательных сюжетов, поддерживающих соотношение сторон "равным" для каждого вспомогательного сюжета:
Matplotlib 2 вспомогательных сюжета, 1 цветная полоса
{ ссылка }
... но с другой геометрией. Я машу 3 «квадратными» графиками (3 карты цветов с одинаковыми диапазонами x и y) и хочу расположить их в вертикальном столбце с одной горизонтальной цветовой полосой вверху или внизу.
Вот пример:
#!/usr/bin/env python3
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from pylab import meshgrid,cm,imshow,contour,clabel,colorbar,axis,title,show
Nlatt = 200
Lrange = 20
# Create grid values first.
xs = np.linspace(-Lrange, Lrange, Nlatt, endpoint=True)
ys = np.linspace(-Lrange, Lrange, Nlatt , endpoint=True)
X,Y = meshgrid(xs, ys) # grid of point
Zx = np.sin(Y-X)*np.sin(Y+X)
Zy = np.cos(Y)*np.sin(X)
ZZ = np.sqrt( Zx**2 + Zy**2 )
fig = plt.figure() #e.g. "2,3,4" means "2x3 grid, 4th subplot"
ax1 = fig.add_subplot(3,1,1, aspect = "equal")
ax2 = fig.add_subplot(3,1,2, aspect = "equal")
ax3 = fig.add_subplot(3,1,3, aspect = "equal")
im1 = ax1.pcolor( X , Y , Zx , cmap='bwr' ,vmin=-2.5, vmax=2.5)
im2 = ax2.pcolor( X , Y , Zy , cmap='bwr' ,vmin=-2.5, vmax=2.5)
im3 = ax3.pcolor( X , Y , ZZ , cmap='bwr' ,vmin=-2.5, vmax=2.5)
plt.tight_layout()
plt.show()
Я хочу добавить общую горизонтальную цветную полосу вверху (или внизу) и разделить ось x, чтобы метка «x» и координаты х появляются только в нижней части третьего графика. на практике желаемым выходом является тот, который описан в общей горизонтальной цветовой полосе Matplotlib, выровненной по нижней оси на вспомогательных участках , но мне не очень понятно, как работает это решение. Кроме того, я также хочу одну метку и цифры для оси х внизу. Спасибо за каждый намек.