Если вы хотите добавить цветную полосу для каждого подзаговора, добавьте вызов к fig.colorbar
внутри цикла for
. Это может быть полезно, если данные в каждом субплоте не находятся в одном диапазоне. Например, на участке 1 они охватывают от 0 до 1, на участке 2 - от 0 до 2 и т. Д.
Вот пример:
fig, axes = plt.subplots(nrows=1, ncols=3)
images =[]
for i in range(3):
images.append([axes[i].scatter(np.random.random(10), np.random.random(10), c =
(1+i)*np.random.random(10), vmin=0, vmax=1+i, cmap="Purples_r"),
axes[i].scatter(np.random.random(10),np.random.random(10), c =
(1+i)*np.random.random(10), vmin=0, vmax=1+i, cmap="Oranges_r")])
fig.colorbar(images[-1][0], ax=axes[i])
fig.colorbar(images[-1][1], ax=axes[i])
plt.show()

Чтобы сделать что-то более приятным, лучше поместить каждую цветовую полосу на свою ось.
wrl = [1, 4, 1] * 3
fig, axes = plt.subplots(nrows=1, ncols=9, gridspec_kw={'width_ratios': wrl})
images =[]
for i in range(3):
leftaxpos = i*3
plotpos = (i*3)+1
rightaxpos = (i*3)+2
images.append([axes[plotpos].scatter(np.random.random(10), np.random.random(10), c =
(1+i)*np.random.random(10), vmin=0, vmax=1+i, cmap="Purples_r"),
axes[plotpos].scatter(np.random.random(10),np.random.random(10), c =
(1+i)*np.random.random(10), vmin=0, vmax=1+i, cmap="Oranges_r")])
fig.colorbar(images[-1][0], cax=axes[leftaxpos])
fig.colorbar(images[-1][1], cax=axes[rightaxpos])
plt.show()
