Aprendiendo Plotly - Paletas de colores

La gestión eficaz del color en los gráficos estadísticos es esencial para transmitir la información de forma clara y comprensible. Si bien los datos son importantes, los colores ayudan a reforzar el mensaje, además de darle una armonía a la presentación de los datos, en especial al diseñar dashboards o tableros de control, donde varios gráficos deben mantener una consistencia y funcionalidad equilibrada con la estética. Aquí hay algunos consejos sobre cómo usar el color correctamente en los gráficos:

  • Simplicidad: Usa pocos colores para evitar confusión visual.
  • Consistencia: Usa los mismos colores en todos los gráficos para comparación fácil.
  • Contraste: Asegúrate de que los colores se diferencien claramente.
  • Color significativo: Asigna colores con sentido, como categorías diferentes.
  • Gradientes sutiles: Utiliza colores suaves para valores continuos.
  • Evita arco iris: No uses demasiados colores llamativos.
  • Blanco y negro: Asegúrate de que los gráficos sean comprensibles en ambos modos.
  • Contexto cultural: Considera las connotaciones culturales de los colores.
  • Resaltar datos clave: Usa colores intensos para resaltar información importante.
  • Leyendas claras: Explica claramente el significado de los colores.
  • Pruebas previas: Pide retroalimentación para evitar problemas de percepción.
  • Herramientas de diseño: Usa programas adecuados y paletas de colores armoniosas.

Paletas de colores en Plotly

Plotly ofrece diferentes maneras de personalizar los colores de los gráficos; para ello ofrece básicamente paletas:
  • Discretas: Usadas generalmente para diferenciar categorías
  • Contínuas: Usadas para valores numéricos contínuos donde el color varía en tono o intensidad dependiendo del valor asociado; muy utilizado para mapas de calor.
Las paletas estándar de Plotly las encontrarás en diferentes módulos de "colors" y son:
  • Qualitative: Estas secuencias de colores son adecuadas para datos que no tienen un orden natural, como categorías, colores, nombres, países, etc. Se recomienda para pasar como argumento color_discrete_sequence a varias funciones de Plotly.
  • Sequential: Estas escalas de color se pueden usar para la mayoría de los datos continuos o categorías que tengan algún tipo de orden. Se recomiendan para usar como argumento  para el parámetro color_continuous_scale a varias funciones.
  • Carto: Secuencia de colores de  CARTO's CartoColors
  • Cyclical: Estas escalas de colores se pueden usar para datos continuos que tienen un ciclo, como datos temporales (hora del día, día de la semana, día del año, estaciones).
  • Cmocean: Secuencias de colores del proyecto cmocean
  • Colorbrewer: Secuencias de color del proyecto colorbrewer 2
  • Diverging: Las escalas de color divergentes se pueden usar para datos continuos que tienen un punto medio natural, como temperaturas, altitudes etc. Se pueden usar como argumento  del parámetro color_continuous_scale a , y pasando el dato medio en color_continuous_midpoint.
Para ver los diferentes colores puedes usar el siguiente código, quitándo el comentario de la paleta de colores que quieren ver:

import plotly.express as px

# fig = px.colors.qualitative.swatches()
# fig = px.colors.sequential.swatches()
# fig = px.colors.sequential.swatches_continuous()
# fig = px.colors.carto.swatches()
# fig = px.colors.cyclical.swatches()
# fig = px.colors.cyclical.swatches_continuous()
# fig = px.colors.cyclical.swatches_cyclical()
# fig = px.colors.cmocean.swatches()
# fig = px.colors.cmocean.swatches_continuous()
# fig = px.colors.colorbrewer.swatches()
# fig = px.colors.diverging.swatches()

fig.show()
Para facilitar la revisión de las paletas de colores creé una utilidad en Streamlit que pueden ver aquí y si quieres conocer más detalles del manejo de colores puedes ver la documentación oficial de Plotly
Para pasar el color se usa la ruta completa de la paleta seleccionada como se ve en el siguiente código. Aquí usamos el parametro color_discrete_sequence pero para paletas contínuas se usa color_continuous_scale

import plotly.express as px
import pandas as pd

# Fuente de datos
dfDatos = pd.read_csv('https://raw.githubusercontent.com/gcastano/datasets/main/gapminder_data.csv')

# #Agrupamos los datos totales
dfDatos2050 = dfDatos[dfDatos['year']==2050].groupby(['continent'],as_index=False).agg({'lifeExpectancy':'mean','population':'sum', 'mean_house_income':'mean','median_age_year':'mean'})

# Crear gráfico línea
fig = px.bar(data_frame= dfDatos2050.sort_values(by='lifeExpectancy',ascending=False), #Dataframe con los datos
              x='continent', #Campo para el eje X
              y=['lifeExpectancy','median_age_year'], #Campo para el eje Y (Numérico)
              title='Life Expectancy at birth vs Year 2050', #Título general del gráfico
              category_orders={'continent':['North America','South America','Africa', 'Asia', 'Europe','Oceania']}, #Permite establecer un orden personalizado de las cateegorías
              color_discrete_sequence=px.colors.qualitative.Alphabet,
              barmode = 'group'
              )

# Mostrar gráfico
fig.show()
Esto dará el siguiente resultado:

Como último tip, Plotly te permite definir tus escalas personalizadas, en caso de que desees que tus colores sean consistentes como temas como marca o paletas de colores del sitio web. Para ello debes elegir los códigos hexadecimales de los colores que deseas y pasarlos así como parámetro a la función de Plotly que corresponda:


color_discrete_sequence=['#a63737','#3b37a6','#46c158']

Publicar un comentario

0 Comentarios