web-dev-qa-db-fra.com

Comment inverser la couleur de la barre de couleur seamap heatborn

J'utilise une carte thermique pour visualiser une matrice de confusion. J'aime les couleurs standard, mais j'aimerais avoir les 0 en orange clair et les valeurs les plus élevées en violet foncé.

J'ai réussi à le faire uniquement avec un autre jeu de couleurs (violet clair à foncé), en réglant:

colormap = sns.cubehelix_palette(as_cmap=True)
ax = sns.heatmap(cm_prob, annot=False, fmt=".3f", xticklabels=print_categories, yticklabels=print_categories, vmin=-0.05, cmap=colormap)

Mais je veux garder ces standards. Ceci est mon code et l'image que je reçois.

ax = sns.heatmap(cm_prob, annot=False, fmt=".3f", xticklabels=print_categories, yticklabels=print_categories, vmin=-0.05)

 enter image description here

8
Fed

Le cmap par défaut est sns.cm.rocket. Pour l'inverser, définissez cmap sur sns.cm.rocket_r

En utilisant votre code:

cmap = sns.cm.rocket_r

ax = sns.heatmap(cm_prob,
                 annot=False,
                 fmt=".3f",
                 xticklabels=print_categories,
                 yticklabels=print_categories,
                 vmin=-0.05,
                 cmap = cmap)
9
Ben

Pour développer la réponse de Ben, vous pouvez le faire avec la plupart des couleurs, sinon aucune.

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
X = np.random.random((4, 4))
sns.heatmap(X,cmap="Blues")
plt.show()
sns.heatmap(X,cmap="Blues_r")
plt.show()
sns.heatmap(X,cmap="YlGnBu")
plt.show()
sns.heatmap(X,cmap="YlGnBu_r")
plt.show()

 enter image description here

4
benbo

Avez-vous essayé d'inverser la palette de couleurs? 

sns.cubehelix_palette(as_cmap=True, reverse=True)