Отразите цветовую шкалу тепловой карты Seaborn, как цвета, так и метки - PullRequest
0 голосов
/ 16 июня 2020

У меня есть тепловая карта, созданная с помощью модуля Seaborn, как показано здесь .

Поскольку значения в таблице обычно увеличиваются с увеличением расстояния от MSL (значения в таблице увеличиваются) ), Я хочу отразить цветовую шкалу так, чтобы темно-синий цвет находился внизу с соответствующей меткой (12), а светло-желтый цвет - вверху с меткой (3).

I только нашел способ инвертировать цвета, но тогда надписи остаются на своих местах. Как я могу отразить всю шкалу (как цвета, так и метки)?

Спасибо!

1 Ответ

0 голосов
/ 16 июня 2020

invert_yaxis() на оси шкалы палитры меняет местами как метки, так и шкалу палитры (invert_xaxis() делает то же самое для горизонтальной шкалы палитры).

Тепловая карта Seaborn напрямую не возвращает дескриптор для сгенерированная палитра. Его можно получить с помощью ax: cbar = ax.collections[0].colorbar.

Вот пример:

import seaborn as sns
import numpy as np
import matplotlib.pylab as plt

x, y = np.meshgrid(np.arange(20), np.arange(20))
arr = (x * y) % 10
ax = sns.heatmap(arr, annot=True, cbar=True)
cbar = ax.collections[0].colorbar
cbar.ax.invert_yaxis()
plt.show()

resulting plot

...