Saltar al contenido principal

Paleta de colores Seaborn: Guía rápida para elegir colores

Utiliza color_palette() para una separación categórica clara, cubehelix_palette() para datos secuenciales graduales, y diverging_palette() para una divergencia clara respecto a un punto medio.
Actualizado 1 oct 2024  · 4 min de lectura

En la visualización de datos, seleccionar los colores apropiados puede ser tan importante como elegir el tipo de gráfico o la representación de datos adecuados. Por suerte, Python hace que sea fácil encontrar la paleta de colores adecuada con Seaborn. Sigue leyendo para comprender cómo crear visualizaciones que no sólo sean informativas, sino también visualmente impactantes y accesibles.

Si eres nuevo en Python, puedes empezar con el curso de Introducción a Python o con el de Programación en Python. Estos recursos te proporcionarán los conocimientos necesarios para seguir los ejemplos y utilizar plenamente las capacidades de Seaborn.

Nota rápida sobre los colores básicos

Hay tres elementos principales que definen cualquier color: tono, saturación y valor. Cada una es importante porque transmiten distintos tipos de información.

Hue

El matiz es lo que solemos considerar "color": es el color puro en sí, como el rojo, el azul o el verde.

Ilustración del matiz. Imagen del autor.

Este visual muestra diferentes tonalidades, moviéndose a través de la rueda de colores desde el rojo hasta el morado. Las distintas tonalidades son buenas para representar datos categóricos o resaltar elementos concretos. Por ejemplo, puedes utilizar tonos distintos para diferenciar categorías no relacionadas en un gráfico de barras o de dispersión.

Saturación

La saturación se refiere a la intensidad o pureza de un color. Un color totalmente saturado es vivo, mientras que un color menos saturado aparece más apagado o gris.

Ilustración de la saturación. Imagen del autor.

Este degradado muestra distintos niveles de saturación para un mismo tono. El color de la derecha está totalmente saturado. A medida que nos desplazamos hacia la izquierda, el color se vuelve cada vez más desaturado, llegando a parecer casi gris. Los colores más saturados pueden llamar la atención sobre puntos de datos clave o regiones de interés.

Valor

El valor, también conocido como brillo, se refiere a la claridad u oscuridad de un color. Añadir blanco aumenta el valor, mientras que añadir negro lo disminuye.

Ilustración del valor (brillo). Imagen del autor.

Este degradado muestra distintos niveles de brillo para un mismo tono. A la derecha, vemos el color en su punto más brillante. A medida que nos desplazamos hacia la izquierda, el valor disminuye, oscureciéndose el color. El valor es útil para mostrar progresión o jerarquía en los datos. Por ejemplo, puedes utilizar un gradiente de valores en un mapa de calor para mostrar la intensidad de los datos en una cuadrícula bidimensional.

Tipos de paleta de colores Seaborn

Exploremos los tres tipos principales de paletas de colores en Seaborn: cualitativa, secuencial y divergente.

Paletas cualitativas utilizando color_palette()

Las paletas cualitativas están diseñadas para datos categóricos en los que no hay un orden inherente o una relación entre categorías. Estas paletas utilizan tonos distintos para diferenciar las categorías.

Paleta cualitativa. Imagen del autor.

La paleta "Bright" mostrada arriba es un ejemplo de paleta cualitativa incorporada en Seaborn. Utiliza tonos distintos y vibrantes para separar las categorías. Los colores se distinguen fácilmente unos de otros, por lo que es ideal para datos categóricos en los que no hay un orden inherente o una relación entre categorías.

La función color_palette() es la forma que tiene Seaborn de crear paletas de colores personalizadas. En puedes cambiar entre estos distintos tipos de paletas cambiando el nombre de la paleta y el número de colores. Cuando utilizas paletas con nombre (como "pastel" o "Blues"), el parámetro number determina cuántos colores ves. Generalmente, haces coincidir el número de colores con tus categorías de datos o creas un degradado con un número determinado de pasos.

Para un control aún más preciso, puedes utilizar códigos HEX para definir colores exactos. Esto es especialmente útil cuando necesitas igualar colores de marca específicos o crear una combinación de colores única no disponible en las paletas incorporadas. A continuación te explicamos cómo puedes crear distintos tipos de paletas utilizando color_palette():

import seaborn as sns
# Create a qualitative palette with 4 colors
qual_palette = sns.color_palette("pastel", 4)

Crear una paleta cualitativa con cuatro colores. Imagen del autor.

# Create a sequential palette with 6 colors
seq_palette = sns.color_palette("Blues", 6)

Crear una paleta secuencial con seis colores. Imagen del autor.

# Create a diverging palette with 12 colors
div_palette = sns.color_palette("RdBu", 12)

Crear una paleta divergente con 12 colores. Imagen del autor.

# Create a custom palette using HEX codes 
hex = sns.color_palette(["#FF6B6B", "#4ECDC4", "#45B7D1","#FAD02E", "#594F4F"])

Crear una paleta personalizada con códigos HEX. Imagen del autor.

Paletas secuenciales utilizando cubehelix_palette()  

Las paletas secuenciales son ideales para datos numéricos que tienen un orden natural. Estas paletas muestran una progresión de valores bajos a altos, normalmente utilizando variaciones de luminosidad y/o saturación de un solo tono o de varios.

Ilustración de la paleta secuencial Viridis. Imagen del autor.

La paleta "Viridis" muestra una progresión del morado oscuro al amarillo brillante. Este tipo de paleta es buena para mostrar una gama de valores de bajo a alto. Esto sería especialmente útil para visualizar datos continuos como rangos de temperatura, densidades de población o cualquier conjunto de datos en el que quieras mostrar una clara relación de bajo a alto. Otras opciones incorporadas son: ‘Blues’, ‘Greens’, ‘Reds’, ‘YlOrBr’, y ‘rocket’.

La función cubehelix_palette() permite crear paletas secuenciales con un control preciso del brillo y la progresión del color. Esta función es especialmente útil cuando necesitas una paleta que aumente suavemente de brillo y varíe ligeramente de tono. Aquí tienes los parámetros para la personalización:

  • n_colors: El número de colores de la paleta.

  • start: La posición inicial en el ciclo de color (0-3).

  • rot: Determina cuánto cambia el tono. 

  • dark: El color más oscuro de la paleta.

  • light: El color más claro de la paleta.

  • reverse: Si se invierte la dirección de la paleta.

import seaborn as sns
# Create a default cubehelix palette
default_cube = sns.cubehelix_palette(8)

Ilustración de la paleta cubehélix por defecto. Imagen del autor.

# Create a custom cubehelix palette
custom_cube = sns.cubehelix_palette(8, start=.5, rot=-.75, dark=.3, light=.8)

Ilustración de una paleta cubehélice personalizada. Imagen del autor.

# Create a reversed cubehelix palette
reversed_cube = sns.cubehelix_palette(8, start=2, rot=0, dark=0, light=.95, reverse=True)

Ilustración de una paleta cubohélice invertida. Imagen del autor.

Paletas divergentes utilizando diverging_palette()

Las paletas divergentes están diseñadas para datos que tienen un punto medio significativo o un valor cero. Estas paletas destacan la divergencia a partir de un punto central, utilizando dos tonos contrastados que se vuelven más saturados a medida que los valores se alejan del centro. 

Ilustración de una paleta divergente. Imagen del autor.

El ejemplo anterior ilustra eficazmente cómo estas paletas ponen de relieve la divergencia respecto a un punto central. La paleta pasa de azules fríos a blancos neutros y rojos cálidos, con un claro punto medio. Este tipo de paleta podría utilizarse para visualizar anomalías de temperatura (donde 0 representa la temperatura media), o escenarios de pérdidas y ganancias en datos financieros. Otras opciones incorporadas son: 'RdBu', 'RdYlGn', y 'PiYG'. Veamos los parámetros:

  • h_neg y h_pos: Los tonos para los extremos negativo y positivo de la paleta.

  • n: El número de colores de la paleta.

  • s: La saturación de los colores.

  • l: La ligereza de los colores.

  • center: El color del punto central ('light' o 'dark').

import seaborn as sns
# Create a default diverging palette
default_div = sns.diverging_palette(220, 20, n=7)

Ilustración de una paleta divergente por defecto. Imago por Autor.

# Create a diverging palette with more saturation
saturated_div = sns.diverging_palette(250, 30, l=65, s=75, n=7)

Paleta divergente con más saturación. Imagen del autor.

# Create a diverging palette with a darker center
dark_center_div = sns.diverging_palette(150, 275, s=80, l=55, n=9, center="dark")

Paleta divergente con un centro más oscuro. Imagen del autor.

Nota final sobre las paletas de colores Seaborn

Seleccionar la paleta de colores adecuada es un aspecto fundamental para crear visualizaciones de datos eficaces. Las diversas y personalizables opciones de paleta de colores de Seaborn proporcionan potentes herramientas para mejorar la claridad y el impacto de tus representaciones de datos.

A medida que apliques estos conceptos de color a tus proyectos de visualización de datos y busques avanzar en tus habilidades, considera la posibilidad de explorar vías de aprendizaje integrales como la trayectoria profesional de Desarrollador Python o Analista de Datos con Python. Estos itinerarios orientados a la carrera profesional están diseñados para elevar tu competencia desde los conceptos básicos hasta las aplicaciones más avanzadas, y comprender las buenas visualizaciones siempre es importante.


Vinod Chugani's photo
Author
Vinod Chugani
LinkedIn

Como profesional experto en Ciencia de Datos, Aprendizaje Automático e IA Generativa, Vinod se dedica a compartir conocimientos y a capacitar a los aspirantes a científicos de datos para que tengan éxito en este dinámico campo.

Preguntas frecuentes sobre la paleta de colores Seaborn

¿Cuáles son los distintos tipos de paletas de colores disponibles en Seaborn?

Seaborn ofrece tres tipos principales de paletas de colores: cualitativas, secuenciales y divergentes. Las paletas cualitativas son ideales para datos categóricos, las paletas secuenciales para datos numéricos con un orden natural, y las paletas divergentes para datos que tienen un punto medio significativo.

¿Cómo puedo crear una paleta de colores personalizada en Seaborn?

Puedes utilizar la función color_palette() para crear paletas personalizadas, incluyendo las de tipo cualitativo, secuencial y divergente. Permite seleccionar colores específicos mediante códigos HEX para un control preciso.

¿Cuándo debo utilizar cubehelix_palette() en Seaborn?

La función cubehelix_palette() es útil para crear paletas secuenciales con una progresión suave del color, sobre todo cuando necesitas un control preciso sobre el brillo y la variación del color.

¿Para qué sirve utilizar diverging_palette() en la visualización de datos?

La función diverging_palette() está diseñada para datos con un punto medio significativo, como pérdidas/ganancias o anomalías de temperatura. Utiliza tonos contrastados para mostrar la divergencia respecto al centro, ayudando a enfatizar las desviaciones.

¿Qué son el tono, la saturación y el valor en la selección del color?

El matiz representa el color puro, como el rojo o el azul; la saturación indica la intensidad del color, de vivo a apagado; y el valor, también conocido como brillo, define la claridad u oscuridad del color. Comprender estos elementos ayuda a elegir colores eficaces para visualizar distintos tipos de datos.

 
Temas
Relacionado

tutorial

Tutorial de Python Seaborn Line Plot: Crear visualizaciones de datos

Descubra cómo utilizar Seaborn, una popular biblioteca de visualización de datos de Python, para crear y personalizar gráficos de líneas en Python.
Elena Kosourova's photo

Elena Kosourova

12 min

tutorial

Python Seaborn Tutorial Para Principiantes: Empezar a visualizar datos

Este tutorial de Seaborn le introduce en los fundamentos de la visualización de datos estadísticos
Moez Ali's photo

Moez Ali

20 min

tutorial

Histogramas en Matplotlib

Aprende sobre histogramas y cómo puedes utilizarlos para obtener información de los datos con la ayuda de matplotlib.
Aditya Sharma's photo

Aditya Sharma

8 min

tutorial

Introducción al trazado con Matplotlib en Python

Este tutorial muestra cómo utilizar Matplotlib, una potente biblioteca de visualización de datos en Python, para crear gráficos de líneas, barras y dispersión con datos bursátiles.

Kevin Babitz

25 min

tutorial

Gráficos lineales en MatplotLib con Python

Este tutorial práctico profundiza en la creación y personalización de gráficos lineales con Matplotlib, una potente biblioteca de visualización de datos en Python.
Arunn Thevapalan's photo

Arunn Thevapalan

11 min

tutorial

Tutorial de Pandas: DataFrames en Python

Explora el análisis de datos con Python. Los DataFrames de Pandas facilitan la manipulación de tus datos, desde la selección o sustitución de columnas e índices hasta la remodelación de tus datos.
Karlijn Willems's photo

Karlijn Willems

20 min

Ver másVer más