2015-11-25 10 views
6

Ich zeichne eine Heatmap in Python mit dem Seaborn-Paket. Die Werte, die ich zeichne, sind diskret, sie sind die Ganzzahlen -1, 0 und 1.Map Wert zu bestimmten Farbe in Seaborn Heatmap

würde ich die Zellen in der Heatmap mit dem Wert wie -1 grün zu zeigen, die mit 0 wie Gelb und 1 als rot.

Ist es möglich, diese Regelung in den Funktionen cubehelix_palette() oder colour_palette() zu spezifizieren?

Antwort

11

Sie matplotlib die verwenden können ListedColormap wie folgt:

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) 

, die ergibt:

enter image description here

Sie können die Saiten 'green', 'yellow', 'red' mit hexcolors ersetzen wie '#FF0000' (äquivalent zu 'red') oder RGB-Farben wie (1.,0.,0.) (entspricht auch 'red').

+0

Perfekt, danke – jma1991