Python matplotlib colorbars: все на последней оси - PullRequest
0 голосов
/ 15 сентября 2018

Все мои цветные полосы отображаются на последней оси imshow():

All scalebars stuck to the bottom-most image

Вот мой код:

"""
Least replicable unit
"""
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
number = 3
Images = np.random.rand(400, number)
Spectra = np.random.rand(100, number)

fig, cax = plt.subplots(nrows=number, ncols=2)
for i in range(number):
    cax[i, 0].plot(Spectra[:, i])
    P = cax[i, 1].imshow(Images[:,i].reshape((20, 20)))
    fig.colorbar(P)
    plt.tight_layout()

Что я делаю не так и как это исправить?

1 Ответ

0 голосов
/ 15 сентября 2018

Вам необходимо передать экземпляр оси в colorbar в качестве аргумента следующим образом. Я выделил измененную строку комментарием. Остальной код остается прежним

for i in range(number):
    cax[i, 0].plot(Spectra[:, i])
    P = cax[i, 1].imshow(Images[:,i].reshape((20, 20)))
    fig.colorbar(P, ax=cax[i, 1]) # Modified here
    plt.tight_layout()

выход

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...