Solución:
iterando en la solución de @mwaskom, sin crear la barra de colores usted mismo:
import numpy as np
import seaborn as sns
data = np.random.rand(8, 12)
ax = sns.heatmap(data, vmin=0, vmax=1)
cbar = ax.collections[0].colorbar
cbar.set_ticks([0, .2, .75, 1])
cbar.set_ticklabels(['low', '20%', '75%', '100%'])
Bueno, tuve un problema similar y descubrí cómo configurar correctamente un formateador. Tu ejemplo se convertiría en algo como:
import numpy as np; np.random.seed(0)
import seaborn as sns; sns.set()
uniform_data = np.random.rand(10, 12)
uniform_data = 100 * uniform_data
sns.heatmap(uniform_data,
cbar_kws={'format': '%.0f%%'})
Entonces, lo que tienes que hacer es pasar un formateador de cuerdas de estilo antiguo para agregar porcentajes a las etiquetas de la barra de colores. No es exactamente lo que yo llamaría evidente por sí mismo, pero funciona …
Para mostrar solo el primero y el último, agregue vmax
, vmin
y un parámetro extra para cbar_kws
:
sns.heatmap(uniform_data,
cbar_kws={'format': '%.0f%%', 'ticks': [0, 100]},
vmax=100,
vmin=0)
Debe poder acceder al objeto de la barra de colores. Puede que esté enterrado en el objeto de la figura en algún lugar, pero no pude encontrarlo, por lo que lo más fácil es hacerlo usted mismo:
import numpy as np; np.random.seed(0)
import seaborn as sns; sns.set()
uniform_data = np.random.rand(10, 12)
ax = sns.heatmap(uniform_data, cbar=False, vmin=0, vmax=1)
cbar = ax.figure.colorbar(ax.collections[0])
cbar.set_ticks([0, 1])
cbar.set_ticklabels(["0%", "100%"])
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)