En el mundo del análisis de datos y la visualización científica, elegir el mapa de colores adecuado es crucial para interpretar correctamente la información representada. Los mapas de colores (colormaps) en Matplotlib, una popular biblioteca de visualización en Python, ofrecen una amplia gama de opciones para representar datos de manera efectiva.
Esta guía presenta los diferentes tipos de colormaps disponibles en Matplotlib, incluyendo secuencias de colores perceptualmente uniformes, secuenciales, divergentes, cíclicos, cualitativos y varios otros. Cada tipo de colormap tiene aplicaciones específicas y es importante seleccionar el más adecuado para destacar las características clave de los datos.
A continuación, se presentan los distintos tipos de colormaps con ejemplos visuales, ayudando a los usuarios a tomar decisiones informadas para sus visualizaciones. Esto conforme a lo establecido en la documentación oficial de Matplotlib.
Perceptually Uniform Sequential (Secuencial Uniformemente Perceptual)
Esta categoría incluye mapas de colores diseñados para tener una percepción uniforme en términos de diferencias de color. Son ideales para visualizaciones donde es importante percibir cambios graduales en los datos de manera consistente, como en mapas de calor o visualizaciones de densidad.
Estos son: Viridis, Plasma, Inferno, Magma, Cividis.
Sequential (Secuencial)
Los mapas de colores secuenciales presentan una transición suave generalmente de colores claros a oscuros, ideales para representar magnitudes y densidades en datos como gráficos de superficie o contornos.
Estos son: Greys, Purples, Blues, Greens, Oranges, Reds, YlOrBr, YlOrRd, OrRd, PuRd, RdPu, BuPu, GnBu, PuBu, YlGnBu, PuBuGn, BuGn, YlGn.
Sequential (2) (Secuencial 2)
Esta variante de los mapas secuenciales incluye una gama más amplia y variada de colores, útil para destacar diferentes rangos de datos en una sola visualización, como en mapas geográficos o imágenes de satélite.
Estas son: binary, gist_yarg, gist_gray, gray, bone, pink, spring, summer, autumn, winter, cool, Wistia, hot, afmhot, gist_heat, copper.
Diverging (Divergente)
Los mapas de colores divergentes son ideales para destacar desviaciones o diferencias alrededor de un punto medio en los datos, usando contrastes de colores. Son especialmente útiles en visualizaciones que involucran cambios o diferencias, como en mapas de anomalías climáticas o diferencias de temperatura.
Estos son: PiYG, PRGn, BrBG, PuOr, RdGy, RdBu, RdYlBu, RdYlGn, Spectral, coolwarm, bwr, seismic.
Cyclic (Cíclico)
Los mapas cíclicos son perfectos para representar datos que se mueven en un ciclo continuo, como fases angulares o tiempo del día. Son ideales para visualizaciones que necesitan representar una secuencia cíclica, como en estudios de fenómenos periódicos o patrones temporales.
Estos son: twilight, twilight_shifted, hsv.
Qualitative (Cualitativo)
Estos mapas de colores proporcionan contrastes claros entre categorías discretas, útiles para visualizar datos categóricos o etiquetados, como en gráficos de barras o tortas para comparaciones de grupos o categorías.
Estos son: Pastel1, Pastel2, Paired, Accent, Dark2, Set1, Set2, Set3, tab10, tab20, tab20b, tab20c.
Miscellaneous (Varios)
Esta categoría incluye una diversa gama de mapas de colores con aplicaciones específicas y efectos visuales únicos, adecuados para situaciones especializadas o cuando se desea un impacto visual particular, como en visualizaciones artísticas o para destacar características específicas en datos complejos.
Estos son: flag, prism, ocean, gist_earth, terrain, gist_stern, gnuplot, gnuplot2, CMRmap, cubehelix, brg, gist_rainbow, rainbow, jet, nipy_spectral, gist_ncar.
Ejemplo de implementación
A continuación, presentamos un ejemplo práctico de cómo generar y visualizar una matriz de confusión para un modelo de clasificación con 10 clases diferentes, utilizando Python y las bibliotecas Matplotlib y Seaborn.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
import numpy as np import matplotlib.pyplot as plt from sklearn.metrics import confusion_matrix import seaborn as sns # Simulando datos de etiquetas verdaderas y predichas para 10 clases y_verdadero_10 = np.random.randint(0, 10, 100) y_predicho_10 = np.random.randint(0, 10, 100) # Crear la matriz de confusión para 10 clases matriz_confusion_10 = confusion_matrix(y_verdadero_10, y_predicho_10) # Crear la figura y el eje para la nueva matriz de confusión fig, ax = plt.subplots() # Visualizar la matriz de confusión de 10 clases usando Seaborn sns.heatmap(matriz_confusion_10, annot=True, fmt="d", cmap='viridis', ax=ax) # Añadir títulos y etiquetas ax.set_title('Matriz de Confusión para 10 Clases') ax.set_xlabel('Predicciones') ax.set_ylabel('Valores Verdaderos') # Mostrar el gráfico plt.show() |
Este script produce el siguiente resultado:
Si cambiamos el parámetro cmap=’viridis’ por cmap=’inferno’ veremos el siguiente resultado:
El mismo resultado se puede obtener para cualquiera de las paletas de colores anteriormente presentadas.
Conclusión
La selección adecuada de un mapa de colores es un aspecto crucial en la visualización de datos, ya que el color no solo embellece la gráfica, sino que también comunica información esencial. Como hemos visto, Matplotlib ofrece una variedad de opciones en mapas de colores, cada una adecuada para diferentes tipos de datos y contextos de visualización. Desde representaciones uniformes hasta mapas cíclicos, la elección del colormap correcto puede mejorar significativamente la interpretación y el impacto visual de los datos.
Esta guía detallada sobre los diferentes tipos de colormaps en Matplotlib, junto con ejemplos prácticos, tiene como objetivo ayudar a los analistas y científicos de datos a tomar decisiones más informadas y efectivas en sus visualizaciones. Al final, el objetivo es presentar los datos de una manera que sea no solo estéticamente agradable, sino también, y lo que es más importante, intuitiva y reveladora en cuanto a la narrativa que los datos tienen para contar.
Espero que la información presentada les sea útil. Cualquier duda o comentario me lo hacen llegar a través de la caja de comentarios.