Skip to content
Tutoriales
Matplotlib
Mastering Custom Colormaps in Matplotlib: A Comprehensive Guide

Colormapas en Matplotlib: Una Guía Completa

La visualización de datos es una habilidad crucial en el arsenal de cualquier científico de datos. Ayuda a comprender datos complejos, encontrar patrones y desarrollar intuiciones que guían los algoritmos de aprendizaje automático. Entre las populares bibliotecas de visualización de datos en Python, destaca una: Matplotlib. Su potencia y versatilidad te permiten crear una amplia variedad de gráficos estáticos, animados e interactivos. En este tutorial, profundizaremos en un aspecto crítico de la visualización de datos: las colormapas en Matplotlib.

¿Quieres crear rápidamente visualizaciones de datos a partir de un DataFrame de Pandas sin código?

PyGWalker es una biblioteca de Python para el análisis exploratorio de datos con visualización. PyGWalker (opens in a new tab) puede simplificar tu flujo de trabajo de análisis y visualización de datos en Jupyter Notebook, convirtiendo tu DataFrame de Pandas (y DataFrame de Polars) en una interfaz de usuario estilo Tableau para exploración visual.

PyGWalker para visualización de datos (opens in a new tab)

¿Qué son las Colormapas?

Las colormapas son una parte vital del Análisis Visual de Datos. Mapean los valores de los datos a colores, ayudando a nuestro cerebro a reconocer patrones en los datos. Matplotlib ofrece una variedad de colormapas incorporadas, que van desde colormapas secuenciales, colormapas divergentes, colormapas cualitativas hasta colormapas cíclicas. Pero a veces, estos pueden no ser suficientes. Ahí es donde entran en juego las colormapas personalizadas.

Creando Colormapas Personalizadas

Entendiendo los Tipos de Colormapas

Antes de aprender cómo crear nuevas colormapas, es esencial comprender los diferentes tipos de colormapas disponibles. Esto nos ayudará a modificar colormapas de manera efectiva.

  1. Colormapas Secuenciales: Estas colormapas varían suavemente en luminosidad y a menudo en tonalidad. Son ideales para representar datos continuos y ordenados. Ejemplos populares incluyen la 'Colormap Hot' y la 'Colormap Rdbu'. Aprende cómo modificar estas aquí.

  2. Colormapas Divergentes: Estas colormapas varían en luminosidad y posiblemente en tonalidad, en dos direcciones diferentes. Son útiles cuando los datos tienen un valor medio que es significativo (como cero, por ejemplo).

  3. Colormapas Cualitativas: Estas se utilizan a menudo para datos categóricos, ya que varían rápidamente en tonalidad.

  4. Colormapas Cíclicas: Estas colormapas se utilizan para datos que se envuelven en los extremos, como el ángulo de fase, la dirección del viento o la hora del día.

Generando un Conjunto de Datos Aleatorio

Comencemos generando un conjunto de datos aleatorio utilizando la biblioteca pandas. Este conjunto de datos nos ayudará a visualizar el impacto de nuestras colormapas personalizadas. Aprende cómo generar un conjunto de datos aleatorio aquí.

Creando Colormapas Personalizadas en Matplotlib

Crear colormapas personalizadas en Matplotlib es sencillo. Puedes definir una colormapa a partir de una lista de colores (especificados en cualquier formato de colores de Matplotlib), y los colores estarán espaciados uniformemente en la colormapa. Así es como puedes crear una colormapa que transita del rojo al azul:

importar matplotlib.pyplot como plt
importar numpy como np
 
cmap = plt.cm.colors.ListedColormap(['red', 'blue'])

Modificando las Colormapas Existentes

También puedes modificar colormapas existentes utilizando la clase Colormap en Matplotlib. Puedes crear una nueva colormapa a partir de una existente utilizando la función get_cmap, y luego modificar el color RGBA directamente. Puedes obtener más información sobre esto aquí.

Visualizando Datos con Colormapas Personalizadas

Ahora que tenemos una colormapa personalizada, visualicemos nuestros datos. Utilizaremos subtramas para comparar nuestra colormapa personalizada con una predeterminada. Puedes aprender más sobre cómo crear subtramas aquí.

fig, axs = plt.subplots(2)
 
# Utilizando la colormapa predeterminada
img1 = axs[0].imshow(data, cmap='viridis')
fig.colorbar(img1, ax=axs[0], orientation='vertical')
axs[0].set_title('Colormap Predeterminada')
 
# Utilizando la colormapa personalizada
img2 = axs[1].imshow(data, cmap=cmap)
fig.colorbar(img2, ax=axs[1], orientation='vertical')
axs[1].set_title('Colormap Personalizada')
 
plt.show()

En el código anterior, se utiliza imshow para mostrar los datos como una imagen donde la intensidad del color se basa en los valores de los datos. La función colorbar añade una barra de color a nuestras subtramas, y la función set_title establece el título para nuestras subtramas.

Más Allá de Matplotlib: Seaborn, Plotly y Más

Si bien Matplotlib es una biblioteca poderosa, no es la única disponible para la visualización de datos en Python. Bibliotecas como Seaborn y Plotly también ofrecen excelentes características e incluso se integran bien con Matplotlib. Seaborn, por ejemplo, se construye sobre Matplotlib e introduce tipos de gráficos adicionales. También hace que tus gráficos luzcan mejor de forma predeterminada. Por otro lado, Plotly se especializa en crear gráficos interactivos. Puedes encontrar más detalles sobre estas bibliotecas aquí.

Conclusión

En el ámbito de la visualización de datos, el control y la personalización de los colores ocupan un lugar prominente. Comprender y utilizar las colormapas de manera efectiva puede mejorar significativamente tu análisis visual de datos. Recuerda, la elección de la colormapa puede resaltar el aspecto importante de tus datos o inducir a una interpretación errónea. Esperamos que esta guía te haya brindado ideas valiosas sobre cómo crear, modificar y utilizar de manera efectiva mapas de colores personalizados en Matplotlib. A medida que continúes tu trayectoria en ciencia de datos y aprendizaje automático, estas habilidades serán activos invaluables. Para obtener más tutoriales sobre pandas y otros temas de Python, visita nuestro índice de tutoriales.