我正在使用seaborn包在Python中绘制热图。我绘制的值是离散的,它们是整数-1
,0
和1
。
我希望热图中的值为-1
的单元格显示绿色,0
显示为黄色,1
为红色。
是否可以在cubehelix_palette()
或colour_palette()
函数中指定此裁定?
答案 0 :(得分: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)
产生:
您可以使用'green', 'yellow', 'red'
(相当于'#FF0000'
)或rgb颜色(例如'red'
(也等同于(1.,0.,0.)
)等十六进制替换字符串'red'
)。