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}
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)
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
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
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 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)
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)
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")
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)
También te puede interesar