Отображение нескольких изображений, используя для цикла - matplotlib - PullRequest
0 голосов
/ 03 ноября 2019

Я хотел бы отобразить 89 изображений, и каждое изображение сохраняется в виде массива с размером [89, 14 * 79]

. Я изменил все данные, используя изменение формы [79,14], и всеизображения должны отображаться.

Поскольку я хочу показать 5 изображений в каждой строке, у меня будет всего 18 строк.

Мой код находится ниже

for i in range(89):
    pixels=cp_cfd[i,:].reshape(79, 14)
    plt.subplot(1,5,i+1)
    plt.imshow(pixels, cmap=plt.cm.viridis)
    plt.title('#'+str(i+1))
plt.show()

С plt.subplot(1,5,i+1) Я получил ошибку. и у меня есть только пять изображений в первой строке.

ValueError: num must be 1 <= num <= 5, not 6

Я знаю, что я должен использовать plt.subplot(18,5,i+1) вместо plt.subplot(1,5,i+1) для целых изображений, но когда я использую plt.subplot(18,5,i+1), размер изображенийстать слишком маленьким. Я хотел бы отобразить всего 89 изображений, но с размером их, когда я использую plt.subplot(1,5,i+1)

Пожалуйста, помогите мне ..

1 Ответ

0 голосов
/ 03 ноября 2019

О, я решил свой вопрос.

cfd_last = x_cfd.shape[0]

for i in range(18): # number of rows of plot
    for j in range(5):

        if i*5+j == cfd_last:
            break

        pixels=cp_cfd[i*5+j,:].reshape(79, 14)
        plt.subplot(1,5,j+1)
        plt.imshow(pixels, cmap=plt.cm.jet)
        plt.title('#'+str(i*5+j+1))


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