Ошибка индекса при ограничении уровней в ax.clabelPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка индекса при ограничении уровней в ax.clabel

Сообщение Anonymous »

У меня есть код Python, который создает контурный график, помечая все контуры в нужных позициях

Код: Выделить всё

    # Plot
fig, ax = plt.subplots(1, 1)
levels = np.arange(-14, 3, dtype=float)
colors = ['grey' for i in range(len(levels))]
cs = ax.contour(X, Y, Z, levels=levels, colors=colors)

# Print the levels to check the exact content
ax.clabel(cs, cs.levels, inline=False, manual=label_positions)

# show
plt.show()
plt.close()
Это отлично работает и создает следующий графикplotcontour_plot
Однако на самом деле мне хотелось пометить только подмножество уровней, сохраняя при этом контурные линии, отображаемые для каждого уровня. Поэтому я изменил код так:

Код: Выделить всё

    # Plot
fig, ax = plt.subplots(1, 1)
levels = np.arange(-14, 3, dtype=float)
colors = ['grey' for i in range(len(levels))]
cs = ax.contour(X, Y, Z, levels=levels, colors=colors)

# Print the levels to check the exact content
ax.clabel(cs, cs.levels[2:], inline=False, manual=label_positions[2:])

# show
plt.show()
plt.close()
Это не сработало, возникла ошибка: «IndexError: индекс списка вне диапазона» в строке с ax.clabel.
Почему я получил эту ошибку? Я думал, что это будет более продвинутая реализация.
FYI level — это пустой массив с 17 элементами, а label_positions — это (17,2) пустой массив ( Я также пробовал использовать список из 17 кортежей, но это дало ту же ошибку). Печать этих двух массивов дает

Код: Выделить всё

    # print variable length
print('levels: \n'+str(levels)+'\n')
print('label_positions:\n '+str(label_positions)+'\n')
вывод уровней и label_positions

Подробнее здесь: https://stackoverflow.com/questions/791 ... -ax-clabel
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»