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()
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()
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.
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")
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"
)
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:
Si notas que muchos de estos con _r
. Son la misma paleta pero en orden inverso.
seaborn.color_palette("Pastel2_r")
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)
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.
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)
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)
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")
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")
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)
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:
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),
)
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.
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.
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