Ошибка при построении Matplotlib xlabel (IndexError: список индексов вне диапазона) - PullRequest
0 голосов
/ 28 октября 2018

Я строю несколько 16 изображений с помощью matplotlib и маркирую их имя, используя имя столбца, из которого были извлечены эти изображения.Я столкнулся с проблемой, когда индекс графиков и их метки не совпадают.

здесь у меня есть рабочий процесс.

names = [(i) for i in (columns)]
names

список имен столбцов:

['value__longest_strike_above_mean',
 'value__longest_strike_below_mean',
 'value__maximum',
 'value__mean',
 'value__mean_abs_change',
 'value__mean_change',
 'value__median',
 'value__minimum',
 'value__number_cwt_peaks__n_12',
 'value__number_cwt_peaks__n_6',
 'value__quantile__q_0.05',
 'value__quantile__q_0.15',
 'value__quantile__q_0.85',
 'value__quantile__q_0.95',
 'value__skewness',
 'value__sum_values'] 

16 имен будут назначены наПриведенные ниже графикимаркировка.Самый последний сюжет также не имеет названия.

Есть идеи, как улучшить маркировку?

Ответы [ 2 ]

0 голосов
/ 28 октября 2018

Вы должны немного изменить свой код:

<b>for i, name in enumerate(names):</b>
    img = f2Array[:,:,i]  
    plt.subplot(4,4,<b>i + 1</b>)
    plt.xticks([])
    plt.yticks([])
    plt.imshow(img, cmap="gist_earth")
    plt.xlabel((<b>name</b>), fontsize=10)
0 голосов
/ 28 октября 2018

Индекс subplot(nrows, ncols, index, **kwargs) начинается с 1. Так что просто удалите i=i+1 и используйте plt.subplot(4,4,i+1).Попробуйте это:

for i in range(0,16):
    img = f2Array[:,:,i]  
    plt.subplot(4,4,i+1)
    plt.xticks([])
    plt.yticks([])
    plt.imshow(img, cmap="gist_earth")
    plt.xlabel((names[i]), fontsize=10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...