Python seaborn.heatmap определяет категории вручную - PullRequest
0 голосов
/ 20 апреля 2020

В настоящее время я работаю над проектом, в котором мне нужно составить тепловую карту и мне нужно вручную установить категории для цветовой кодировки на 3 фиксированных значения (ниже 4-> желтый, между 4 и 5-> оранжевый, выше 5- > красный). Как мне это сделать? Это минимальный рабочий пример

import numpy as np
import seaborn as sns; sns.set()
m=[[4.09411765, 5.09411765, 6.09411765],[3.09411765, 4.09411765, 5.09411765], [2.09411765, 3.09411765, 4.09411765]]
m=np.matrix(m)
sns.heatmap(m,  annot=True)
plt.show()

Большое спасибо заранее.

1 Ответ

0 голосов
/ 20 апреля 2020

Вы можете создать ListedColormap . При желании цветная полоса может быть нарисована стрелками экстента.

from matplotlib import pyplot as plt
from matplotlib.colors import ListedColormap
import numpy as np
import seaborn as sns; sns.set()

m = np.matrix([[4.09411765, 5.09411765, 6.09411765],
               [3.09411765, 4.09411765, 5.09411765],
               [2.09411765, 3.09411765, 4.09411765]])
sns.heatmap(m, annot=True, cmap=ListedColormap(['yellow', 'orange', 'r']), vmin=3, vmax=6,
            cbar_kws={'ticks': [4, 5], 'extend': 'both'})
plt.show()

resulting plot

...