как-то так?
fig, axes = plt.subplots(nrows=3, ncols=3, figsize=(9, 9))
for r in np.arange(3):
for c in np.arange(3):
axes[r, c].plot(np.arange(10), np.random.randint(10, size=10))
colors = ['azure','hotpink','lightyellow']
for ax,color in zip(axes[:,0],colors):
bbox = ax.get_position()
rect = matplotlib.patches.Rectangle((0,bbox.y0),1,bbox.height, color=color, zorder=-1)
fig.add_artist(rect)
plt.show()
![enter image description here](https://i.stack.imgur.com/Ot2h2.png)
Код для matplotlib .__ версия __ <3.0 </strong>
Следующий код работает в более старой версии matplotlib, где Figure.add_artist()
не существует. Однако я обнаружил, что добавление прямоугольника к одной из осей вызывает проблемы для фонового патча этих осей, поэтому мне пришлось скрыть все фоны для единообразного вида.
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
import numpy as np
fig, axes = plt.subplots(nrows=3, ncols=3)
for r in np.arange(3):
for c in np.arange(3):
axes[r, c].plot(np.arange(10), np.random.randint(10, size=10))
fig.tight_layout()
colors = ['azure','hotpink','lightyellow']
for ax,color in zip(axes[:,0],colors):
bbox = ax.get_position()
rect = Rectangle((0,bbox.y0),1,bbox.height, color=color, zorder=-1, transform=fig.transFigure, clip_on=False)
ax.add_artist(rect)
for ax in axes.flat:
ax.patch.set_visible(False)
plt.show()
![enter image description here](https://i.stack.imgur.com/qtQUb.png)