Один из подходов заключается в создании списка цветов с синим цветом один раз, голубым 4 раза и зеленым 3 раза. И установить vmin=0
, vmax=8
, чтобы все значения были ограничены этим желаемым диапазоном.
Код ниже делает именно это. Значения добавляются в виде текста, чтобы легко проверить, что происходит.
import seaborn as sns
import matplotlib.pyplot as plt
data = [[1, 1.5, 6],
[4, 1.6, 8],
[0, 1.7, 10]]
colors = ["#0416FF", *(["#0094FF"]*4), *(["#00A305"]*3)]
heat_map = sns.heatmap(data, cmap=colors, vmin=0, vmax=8)
ax = plt.gca()
for i in range(len(data)):
for j in range(len(data[0])):
ax.text(j+0.5, i+0.5, data[i][j], color='gold', ha='center', va='center', fontsize=20)