Gráfico de dispersión en seaborn

Conjunto de datos de muestra

Considera los siguientes datos para fines ilustrativos:

import numpy as np

# Semilla
rng = np.random.RandomState(0)

# Simulación de datos
x = rng.uniform(0, 1, 500)
y = 5 * x + rng.normal(0, 2, size = 500)
group = np.where(x < 0.4, "A", np.where(x > 0.8, "C", "B"))
x = x + rng.uniform(-0.2, 0.2, 500)

# Conjunto de datos
df = {'x': x, 'y': y, 'group': group}

Gráfico de dispersión con la función scatterplot

Para crear un gráfico de dispersión en Python con seaborn puedes usar la función scatterplot o relplot. Tienes varias opciones para pasar tus datos: puedes pasar tus variables para los ejes X e Y a los argumentos x e y como arrays, pasar un conjunto de datos al argumento data y establecer los nombres de las variables o pasar un data frame al argumento data con el formato adecuado. Los símbolos serán azules por defecto.

import seaborn as sns

sns.scatterplot(x = x, y = y)

# Equivalente a:
sns.scatterplot(x = "x", y = "y", data = df)

# Equivalente a:
sns.relplot(x = x, y = y)

Gráfico de dispersión en Python con sns seaborn

Personalización del color

Cambiar el color de un gráfico de dispersión con seaborn en Python

Color de los símbolos

En caso de que quieras sobrescribir el color por defecto de los símbolos puedes especificar un nuevo color con el argumento color de la función.

import seaborn as sns

sns.scatterplot(x = x, y = y,
                color = "green")

Color del borde de los símbolos en un gráfico de dispersión con seaborn

Color del borde

Ten en cuenta que también puedes modificar el color de los símbolos con edgecolor, que por defecto es blanco. En caso de que quieras eliminar los bordes establece edgecolor = "none", edgecolor = None o linewidth = 0.

import seaborn as sns

sns.scatterplot(x = x, y = y,
                edgecolor = "black")

Transparencia de los símbolos en Python

Transparencia

El argumento alpha de la función controla la transparencia de los símbolos. Esto es muy útil cuando hay muchos datos y los puntos se superponen unos encima de otros. De esta manera, se pueden ver las zonas de mayor densidad.

import seaborn as sns

sns.scatterplot(x = x, y = y,
                alpha = 0.25)

Color de los símbolos en base a un valor en Python

Color en base a una variable

Si pasas una variable al argumento hue de la función scatterplot los símbolos del gráfico se colorearán en base a esa variable.

import seaborn as sns

sns.scatterplot(x = x, y = y,
                hue = y)

Forma y tamaño de los símbolos

Tamaño de los símbolos

Dependiendo de tus datos tendrás que modificar el tamaño de los símbolos del gráfico. Por ejemplo, si tienes muchas observaciones podrías considerar reducir el tamaño de los símbolos con el argumento size.

import seaborn as sns

sns.scatterplot(x = x, y = y,
                size = 1, legend = False)

Tamaño de los símbolos en seaborn

Forma de los símbolos

Por defecto, los símbolos del gráfico de dispersión son círculos, pero puedes seleccionar entre una gran variedad de formas con el argumento marker. Por ejemplo, si pasamos "s" los símbolos serán cuadrados.

import seaborn as sns

sns.scatterplot(x = x, y = y,
                marker = "s")

Forma de los símbolos en seaborn

Tamaño de los símbolos en base a una variable

El argumento size también permite pasar una variable como input. En este escenario, el tamaño de los símbolos se basará en el valor de esa variable.

import seaborn as sns

sns.scatterplot(x = x, y = y,
                size = y,
                hue = y)

Tamaño de los símbolos en base a una variable en un gráfico de dispersión en Python con seaborn

Better Data Visualizations

A Guide for Scholars, Researchers, and Wonks

Comprar en Amazon

También te puede interesar