вспомогательные участки matplotlib в столбце с общей горизонтальной цветовой панелью - PullRequest
1 голос
/ 02 мая 2020

Я видел эти хорошие решения для создания нескольких вспомогательных сюжетов, поддерживающих соотношение сторон "равным" для каждого вспомогательного сюжета:

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, выровненной по нижней оси на вспомогательных участках , но мне не очень понятно, как работает это решение. Кроме того, я также хочу одну метку и цифры для оси х внизу. Спасибо за каждый намек.

...