将值映射到seaborn heatmap中的特定颜色

jma*_*991 8 python heatmap seaborn

我正在使用seaborn包在Python中绘制热图.我绘制值是离散的,他们是整数-1,01.

我希望热图中的单元格-1显示绿色,0黄色显示1为红色,红色显示为绿色.

是否可以在cubehelix_palette()colour_palette()函数中指定此裁定?

Ima*_*ngo 13

您可以使用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)
Run Code Online (Sandbox Code Playgroud)

产量:

在此输入图像描述

您可以'green', 'yellow', 'red'用六边形替换字符串,例如'#FF0000'(等效于'red')或rgb颜色,例如(1.,0.,0.)(也等同于'red').