2015-11-25 28 views
6

Sto mappando una mappa termica in Python con il pacchetto Seaborn. I valori che sto tramando sono discreti, sono gli interi -1, 0 e 1.Valore mappa su un colore specifico in heatmap Seaborn

Desidero visualizzare le celle nella heatmap con il valore -1 verdi, quelle con 0 come giallo e 1 come rosso.

È possibile specificare questo ruling nelle funzioni cubehelix_palette() o colour_palette()?

risposta

11

È possibile utilizzare matplotlib di ListedColormap come segue:

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) 

che produce:

enter image description here

È possibile sostituire le stringhe 'green', 'yellow', 'red' con hexcolors come '#FF0000' (equivalenti a 'red') o colori RGB ad esempio (1.,0.,0.) (equivalente anche a 'red').

+0

Perfetto, grazie – jma1991