Mapas de calor y barras de color en matplotlib

Mapas de calor y barras de color en matplotlib
La visualización de datos es uno de los pasos más cruciales en la ciencia de datos (o cualquier otra ciencia, para el caso). Nosotros, como humanos, somos pobres para dar sentido a las filas y filas de números. Es por eso que siempre es útil tener una utilidad como matplotlib para ayudarnos a desarrollar una intuición visual de lo que está sucediendo cuando, por ejemplo, un algoritmo de aprendizaje automático está clasificando grandes cantidades de datos.

Mientras que los gráficos que muestran relación entre dos variables, como la altura y el peso, se pueden trazar fácilmente en una pantalla plana como se muestra a continuación, las cosas se vuelven realmente desordenadas cuando tenemos más de dos parámetros.

Fue entonces cuando las personas intentan cambiar a las parcelas 3D, pero a menudo son confusas y torpes, lo que derrota todo el propósito de la visualización de datos. Necesitamos mapas de calor para imágenes.

¿Qué son los mapas de calor??

Si miras la imagen desde una cámara térmica, puedes ver un mapa de calor literal. La cámara de imagen térmica representa una temperatura diferente como diferentes colores. El esquema de coloración atrae a nuestra intuición de que el rojo es un "color cálido" y toma azul y negro para representar superficies frías.

Esta vista de Marte es un muy buen ejemplo en el que las regiones frías son de color azul, mientras que las regiones más cálidas en gran medida rojo y amarillo. La barra de color en la imagen muestra qué color representa qué temperatura.

Usando matplotlib podemos asociarnos con un punto (x, y) en el gráfico con un color específico que representa la variable que estamos tratando de visualizar. No necesita ser temperatura, podría ser cualquier otra variable. También mostraremos un barra de color a su lado para indicar a los usuarios lo que significan diferentes colores.

Muchas veces verías personas que mencionaron los colores en lugar de mapas de calor. Estos a menudo se usan indistintamente. Colormapp es un término más genérico.

Instalación e importación de matplotlib y paquetes relacionados

Para comenzar con matplotlib, asegúrese de tener instalado Python (preferiblemente Python 3 y Pip). También necesitarás numpy, bisagro y pandas para trabajar con conjuntos de datos. Dado que vamos a trazar una función simple, solo dos de los paquetes numpy y mate van a ser necesarios.

$ Pip Instalar matplotlib numpy
#or si tienes a Python dos y tres instalados
$ PIP3 Instalar matplotlib Numpy

Una vez que haya instalado las bibliotecas, debe asegurarse de que se importen en su programa Python.

importar numpy como np
Importar matplotlib.Pyplot como PLT

Ahora puede usar las funciones suministradas por estas bibliotecas utilizando sintaxis como notario público.NumpyFunction ()y PLT.SomeOtherFunction ().

Algunos ejemplos

Comencemos por trazar una función matemática simple que toma puntos en un avión (sus coordenadas X e Y) y les asigna un valor. La captura de pantalla a continuación muestra la función junto con la trama.

Los diferentes colores representan diferentes valores (como lo indican la escala junto a la gráfica). Veamos el código que se puede usar para generar este.

importar numpy como np
Importar matplotlib.Pyplot como PLT
# Función matemática necesitamos trazar
def z_func (x, y):
return (1 - (x ** 2 + y ** 3)) * np.exp (-(x ** 2 + y ** 2) / 2)
# Configuración de valores de entrada
x = NP.Arange (-3.0, 3.0, 0.1)
y = NP.Arange (-3.0, 3.0, 0.1)
X, y = np.Meshgrid (x, y)
# Calcular la salida y almacenarla en la matriz z
Z = z_func (x, y)
IM = PLT.Imshow (Z, CMAP = PLT.cm.Rdbu, extensión = ( -3, 3, 3, -3),
interpolación = 'bilineal')
PLT.barra de color (im)
PLT.Título ('$ z = (1-x^2+y^3) e^-(x^2+y^2)/2 $')
PLT.espectáculo()

Lo primero que debe notar es que importamos solo matplotlib.pyplot una pequeña porción de toda la biblioteca. Dado que el proyecto es bastante antiguo, tiene muchas cosas acumuladas a lo largo de los años. Por ejemplo, matplotlib.Pyplot era popular en el pasado, pero ahora es solo una reliquia histórica e importarla solo agrega más hinchazón a su programa.

A continuación, definimos la función matemática que deseamos trazar. Se necesitan dos valores (x, y) y devuelve el tercer valor z. Hemos definido la función que aún no la usa.

La siguiente sección adquiere la tarea de crear una matriz de valores de entrada, usamos Numpy para eso aunque puede usar la compilación en rango() Funciona para ello si quieres. Una vez que se preparan la lista de valores X e Y (que van desde negativos 3 a 3) calculamos el valor z a partir de ella.

Ahora que hemos calculado nuestras entradas y salidas, podemos trazar los resultados. El PLT.imshow () le dice a Python que la imagen se preocupará por Z, que es nuestra variable de salida. También dice que va a ser un color anormapado, un CMAP, con azul rojo (Rdbu) Escala que se extiende de -3 a 3 en cualquier eje. El interpolación El parámetro hace que el gráfico sea más suave, artificialmente. De lo contrario, su imagen se vería bastante pixelada y gruesa.

En este punto, se crea el gráfico, simplemente no impreso. Luego agregamos la barra de color en el costado para ayudar a correlacionar diferentes valores de Z con diferentes colores y mencionar la ecuación en el título. Estos se realizan en pasos PLT.barra de color (im) y PLT.título(… ). Finalmente, llamar a la función nos muestra el gráfico en la pantalla.

Reusabilidad

Puede usar la estructura anterior para trazar cualquier otro colormapap 2D. Ni siquiera tienes que apegarte a las funciones matemáticas. Si tiene enormes conjuntos de datos en su sistema de archivos, tal vez información sobre una determinada demografía o cualquier otro datos estadísticos que pueda conectarlo modificando el X, y valores sin alterar la sección de colormapap.

Espero que hayas encontrado este artículo útil y si te gusta contenido similar, háganoslo saber.