Значение карты для конкретного цвета в Seaborn heatmap

Я строю тепловую карту в Python с пакетом seaborn. Значения, которые я строю, дискретны, они являются целыми числами -1, 0 и 1.

Я хотел бы, чтобы ячейки в тепловой карте со значением -1 показать зеленый, с 0 как желтый и 1 красный.

можно ли указать это постановление в cubehelix_palette() или colour_palette() функции?

1 ответов


вы можете использовать библиотек matplotlib это ListedColormap следующим образом:

import numpy as np
import seaborn as sns
from matplotlib.colors import ListedColormap

data = np.random.randint(-1, 2, (10,10)) # Random [-1, 0, 1] data
sns.heatmap(data, cmap=ListedColormap(['green', 'yellow', 'red']), annot=True)

что дает:

enter image description here

вы можете заменить строки 'green', 'yellow', 'red' С hexcolors, такие как '#FF0000' (эквивалент 'red') или RGB цвета, такие как (1.,0.,0.) (эквивалентно 'red').