jointplot
Con la función jointplot
es inmediato crear un gráfico de dispersión (y otros tipos de gráficos) con histogramas marginales. Tendrás que pasar tus datos a la función para crear la visualización.
import seaborn as sns
df = sns.load_dataset("penguins")
sns.jointplot(data = df,
x = "bill_length_mm",
y = "bill_depth_mm")
Una alternativa a la función jointplot
es JointGrid
, que proporciona mayor flexibilidad, en caso de ser neceasaria. jointgrid
es un wrapper de esa función.
import seaborn as sns
df = sns.load_dataset("penguins")
ax = sns.JointGrid(data = df,
x = "bill_length_mm",
y = "bill_depth_mm")
ax.plot(sns.scatterplot, sns.histplot)
Agregar una recta de regresión y densidades
La función proporciona un argumento llamado kind
que permite seleccionar entre distintos tipos de gráficos. Las posibles opciones son "scatter"
(por defecto), "kde"
, "hist"
, "hex"
, "reg"
y "resid"
.
import seaborn as sns
df = sns.load_dataset("penguins")
sns.jointplot(data = df,
x = "bill_length_mm",
y = "bill_depth_mm",
kind = "reg") #Agrega recta de regresión y densidades
Símbolos
Los símbolos utilizados para representar las observaciones de un gráfico de dispersión se pueden personalizar con el argumento marker
.
import seaborn as sns
df = sns.load_dataset("penguins")
sns.jointplot(data = df,
x = "bill_length_mm",
y = "bill_depth_mm",
marker = "x")
Mostrar los ejes de los gráfios marginales
Si quieres que se muestren los ejes de los histogramas marginales puedes establecer el argumento marginal_ticks
como True
.
import seaborn as sns
df = sns.load_dataset("penguins")
sns.jointplot(data = df,
x = "bill_length_mm",
y = "bill_depth_mm",
marginal_ticks = True)
Tamaño de los gráficos marginales
Por defecto, el gráfico principal es 5 veces más grande que los gráficos marginales. Puedes cambiar la relación de tamaños con ratio
. Ten en cuenta que este argumento solo acepta números enteros.
import seaborn as sns
df = sns.load_dataset("penguins")
# Gráfico de dispersión dos veces más grande que los histogramas
sns.jointplot(data = df,
x = "bill_length_mm",
y = "bill_depth_mm",
ratio = 2)
Por último, también es posible personalizar los colores. Si quieres que tanto los histogramas como los puntos del gráfico de dispersión tengan el mismo color, pasa el color elegido a color
.
import seaborn as sns
df = sns.load_dataset("penguins")
sns.jointplot(data = df,
x = "bill_length_mm",
y = "bill_depth_mm",
color = "lavender")
Sin embargo, si prefieres tener colores diferentes para los histogramas puedes pasar un diccionario al argumento marginal_kws
y seleccionar el color que quieras. Ten en cuenta que este argumento también se puede utilizar para personalizar otros argumentos relacionados con los histogramas.
import seaborn as sns
df = sns.load_dataset("penguins")
sns.jointplot(data = df,
x = "bill_length_mm",
y = "bill_depth_mm",
color = "dimgray",
marginal_kws = dict(color = "lavender"))
También te puede interesar