Cree una paleta de colores diferente usando Seaborn

Salman Mehmood 26 mayo 2022
Cree una paleta de colores diferente usando Seaborn

Este artículo explorará diferentes opciones para las paletas de colores de Seaborn. También le mostraremos cómo crear su paleta de colores personalizada en Seaborn.

Cree diferentes paletas de colores usando Seaborn

Comencemos por importar Seaborn y guardarlo como seaborn. También cargaremos algunos datos de la biblioteca de Seaborn llamados tips.

import seaborn as seaborn

Eche un vistazo a la parte superior del dataframe customer_bill y vea que tenemos diferentes montos de facturas y montos de propinas dejados por cada cliente. También tenemos diferentes características, como el día de la semana o cuando se sirvió esa comida.

customer_bill = seaborn.load_dataset("tips")
customer_bill.head()

paleta de colores seaborn - salida 1

Ahora configuramos set_style para que sea darkgrid y creamos el diagrama de dispersión usando la función diagrama de dispersión.

En esta función de diagrama de dispersión, pasamos al eje x el total_bill, y al eje y representa la propina. La propiedad data proviene del dataframe customer_bill.

También podemos pasar otra columna, una columna categórica como día, a la propiedad tono. Esto se dividirá en diferentes colores para cada día de la semana.

import seaborn as seaborn

# collect data from seaborn
customer_bill = seaborn.load_dataset("tips")
customer_bill.head()
# set grid style
seaborn.set_style("darkgrid")
seaborn.scatterplot(x="total_bill", y="tip", data=customer_bill, hue="day")
# uncomment the below code if you are not using jupyter notebook
# import matplotlib.pyplot as plot
# plot.show()

paleta de colores seaborn - salida 2

Si se da cuenta, Seaborn usa su paleta de colores predeterminada en los diagramas de dispersión. Podemos comprobar la paleta por defecto de Seaborn usando la función color_palette().

seaborn.color_palette()

Esto le mostrará la paleta de colores predeterminada que usa Seaborn para los primeros cuatro colores.

paleta de colores seaborn - salida 3

Podemos pasar varias opciones en la función color_palette(). Si le pasamos un nombre de cadena válido como Pastel2, veremos las otras paletas de colores.

seaborn.color_palette("Pastel2")

paleta de colores seaborn - salida 4

Podemos usar diferentes paletas de colores con nombre. Solo tenemos que agregar este argumento palette y establecerlo igual a un nombre de paleta válido.

seaborn.set_style("whitegrid")
seaborn.scatterplot(
    x="total_bill", y="tip", data=customer_bill, hue="day", palette="Pastel2"
)

paleta de colores seaborn - salida 5

Actualmente hay 170 paletas de colores con nombres diferentes que podemos usar dentro de Seaborn. Si olvida sus nombres, no tiene que ir a buscarlos; puede pasar un nombre de paleta no válido como:

seaborn.scatterplot(
    x="total_bill", y="tip", data=customer_bill, hue="day", palette="GH"
)

Producción:

paleta de colores seaborn - salida 6

Si notas que muchos de estos con _r. Son la misma paleta pero en orden inverso.

seaborn.color_palette("Pastel2_r")

paleta de colores seaborn - salida 7

Si no pasamos el argumento de la paleta, entonces Seaborn establece el color de la paleta por defecto.

seaborn.scatterplot(x="total_bill", y="tip", data=customer_bill)

paleta de colores seaborn - salida 8

Si queremos actualizar el color de estos puntos, nos referiremos a eso como color. No es una paleta; es un color porque tenemos un solo color en toda la figura, pero mira lo que pasa si cambiamos este color a la cuerda azul.

seaborn.scatterplot(x="total_bill", y="tip", data=customer_bill, color="blue")

Este es el azul Matplotlib, no el azul Seaborn.

paleta de colores seaborn - salida 9

Supongamos que queremos extraer el color azul marino usando la función color_palette() y seleccionar los dos primeros colores. Esto nos da la primera tupla, azul, y la segunda, naranja.

BLUE, ORANGE = seaborn.color_palette()[:2]
seaborn.scatterplot(x="total_bill", y="tip", data=customer_bill, color=BLUE)

paleta de colores seaborn - salida 10

Crear paleta de colores personalizada en Seaborn

Podemos crear nuestras paletas de colores personalizadas en Seaborn basadas en un solo color o mezcladas entre varios colores. Incluso podemos crear una paleta de resaltado que enfatice una categoría en particular.

Hay varias formas en que podemos crear paletas personalizadas con Seaborn. Podemos pasar un número entero si necesitamos colores adicionales fuera de esta paleta.

seaborn.color_palette("Pastel2", 10)

paleta de colores seaborn - salida 11

También podemos crear nuestras paletas de colores accediendo a la función light_palette(), y este método acepta un color con nombre. Esta paleta contiene diferentes tonos de un color.

seaborn.light_palette("gray")

paleta de colores seaborn - salida 12

Seaborn tiene una función dark_palette() que crea una paleta oscura. El color comienza desde un tono más oscuro y sube hasta el color mencionado.

seaborn.dark_palette("red")

paleta de colores seaborn - salida 13

Seaborn también nos permite crear paletas divergentes usando esta función blend_palette(), y el argumento será una lista de colores. Esto creará una paleta que se mezcla entre todos los colores que hemos pasado en la lista.

seaborn.blend_palette(["blue", "red", "green"], 12)

paleta de colores seaborn - salida 14

Pasemos blend_palette() al argumento de la paleta. Es posible que obtengamos un error cuando hagamos esto porque el número predeterminado de colores para una blend_palette() es seis, pero solo tenemos cuatro categorías diferentes en nuestra columna de día.

seaborn.scatterplot(
    x="total_bill",
    y="tip",
    data=customer_bill,
    hue="day",
    palette=seaborn.blend_palette(["green", "red"]),
)

Producción:

paleta de colores seaborn - salida 15

Necesitamos pasar un número entero ya que existe nuestra categoría de columnas día.

seaborn.scatterplot(
    x="total_bill",
    y="tip",
    data=customer_bill,
    hue="day",
    palette=seaborn.blend_palette(["green", "red"], 4),
)

paleta de colores seaborn - salida 16

Seaborn nos brinda la opción de usar una paleta de resaltado, que se utilizará siempre que queramos enfatizar una o dos categorías. Vamos a crear un diccionario de paletas para cada día único.

P_DICT = {k: "gray" for k in customer_bill.day.unique()}
P_DICT

El nombre de ese día será la clave de este diccionario.

paleta de colores seaborn - salida 17

Si queremos resaltar el viernes en nuestra figura, podríamos asignar un nuevo valor como rojo a cualquier categoría que nos interese.

P_DICT["Fri"] = "red"
seaborn.scatterplot(
    x="total_bill", y="tip", data=customer_bill, hue="day", palette=P_DICT
)

Podemos ver que todos los días son grises excepto el viernes, coloreado en rojo. Esto puede ser útil si queremos destacar un día en particular.

paleta de colores seaborn - salida 18

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

Artículo relacionado - Seaborn Color