2012-08-27 26 views
5

Supongamos que quiero hacer 2+ heatmaps (en la misma o diferentes figuras) y hacer que el color < -> el mapeo de valores sea el mismo entre ellos.Cómo forzar el mapeo de color a un rango dinámico más grande que la entrada particular a imshow en matplotlib

Por defecto, los valores extremos en el mapa de colores (por ejemplo, jet) se usarán para el rango dinámico de cada heatmap individualmente (es decir, cada llamada para mostrar), y me gustaría forzar la asignación para que sea la misma, es decir, usa el rango dinámico global.

Creo que una declaración equivalente es que me gustaría de alguna manera especificar una asignación absoluta, mientras que el comportamiento de imshow dado un objeto cmap, es relativo al rango dinámico de la entrada.

Respuesta

4

Creo que este link puede ayudar?

En realidad, this answer es mucho más simple.

+0

Especificación vmin y vmax (lo mismo para cada trama, basado en el rango global) funcionó, ¡gracias! No lo habría adivinado en base a la documentación ("Se usa para escalar una imagen de luminancia a 0-1. Si cualquiera de ellas es Ninguna, se usarán el mínimo y el máximo de los valores de luminancia. Observe si la norma no es Ninguna, la configuración para vmin y vmax serán ignorados. "), ¡pero resolvió mi problema! –

+0

Sí, recuerdo haber tenido que cavar para eso también. – reptilicus

0

Si no desea especificar los rangos pero de alguna manera saber que una parcela dispone de la más amplia gama, se puede obtener ese rango con Axesimage.properties()['clim'] y configurarlo para las otras parcelas como he explicado aquí: Imshow subplots with the same colorbar

Cuestiones relacionadas