Тепловая карта Matplotlib с дискретной пользовательской цветовой панельюPython

Программы на Python
Anonymous
Тепловая карта Matplotlib с дискретной пользовательской цветовой панелью

Сообщение Anonymous »

Я работал над графиком, где данные состоят из целых чисел от 1 до 7 (включительно).
График представляет собой тепловую карту, и в идеале я мог бы связать любой цвет с любым числом.
/>Сюжет будет сопровождаться цветовой полосой, показывающей различные цвета вместе с их метками.
Проблема в том, что я не уверен, как работает последовательность цветов. Я ожидаю, что данные, состоящие из 7, будут связаны с серым, поскольку это последний цвет в моем списке цветов, но он связан с белым (третий элемент в списке).
Ниже — это код, используемый для создания сюжета (я удалил несколько вещей, не имеющих отношения к вопросу).

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

def plot(data):
fig, ax = plt.subplots(figsize=(16, 4), dpi = 300)

colours = ["cyan", "red", "white", "lime", "yellow", "k", 'grey']
bounds = np.array([1, 2, 3, 4, 5, 6, 7, 8]) -0.5 #0.5 to center it which does not work
cmap = colors.ListedColormap(colours)
norm = colors.BoundaryNorm(bounds, cmap.N)
h = ax.pcolor(data, norm= norm, cmap = cmap)

cbar = plt.colorbar(h)
cbar.set_ticks(ticks = bounds, labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'])

plt.title("Assessment of Different Turbulent Mixing Sources", fontsize = 20)
plt.xlabel("Time EDT (hh:mm)", fontsize = 20)
plt.ylabel("Height (m)", fontsize=20)
plt.show()
В результате получился следующий график:
Сюжет

Подробнее здесь: https://stackoverflow.com/questions/781 ... m-colorbar

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