Seaborn trae varios datasets incluidos para aprender y practicar. Vamos a trabajar con tres de los más usados:
Cada ejemplo incluye imports, sns.set_theme
y gráficos listos para copiar/pegar/ejecutar.
El dataset contiene información sobre propinas en un restaurante: cuenta total, propina, sexo, fumador/no fumador, día, momento del día (almuerzo/cena), y tamaño de la mesa.
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme(style="whitegrid", context="notebook")
tips = sns.load_dataset("tips")
sns.histplot(data=tips, x="tip", bins=20, kde=True, color="skyblue")
plt.title("Distribución de propinas (USD)")
plt.xlabel("Propina")
plt.ylabel("Frecuencia")
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme(style="whitegrid", context="notebook")
tips = sns.load_dataset("tips")
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="sex", style="smoker")
plt.title("Relación entre total de la cuenta y propina")
plt.xlabel("Total de la cuenta (USD)")
plt.ylabel("Propina (USD)")
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme(style="whitegrid", context="talk")
tips = sns.load_dataset("tips").assign(tip_pct = 100 * tips["tip"] / tips["total_bill"])
sns.violinplot(data=tips, x="day", y="tip_pct", inner="quartile", palette="pastel")
plt.title("Porcentaje de propina por día")
plt.ylabel("Propina (%)")
plt.show()
Este dataset incluye 150 observaciones de flores Iris de 3 especies (setosa, versicolor, virginica), con 4 medidas: largo y ancho de sépalo, largo y ancho de pétalo.
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme(style="whitegrid", context="notebook")
iris = sns.load_dataset("iris")
sns.pairplot(data=iris, hue="species", diag_kind="kde", plot_kws={"alpha":0.7, "s":40})
plt.suptitle("Relaciones entre medidas de Iris", y=1.02)
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme(style="ticks", context="notebook")
iris = sns.load_dataset("iris")
sns.violinplot(data=iris, x="species", y="petal_length", palette="Set2", inner="quartile")
plt.title("Distribución del largo de pétalo por especie")
plt.ylabel("Petal length (cm)")
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme(style="whitegrid", context="talk")
iris = sns.load_dataset("iris")
sns.lmplot(data=iris, x="sepal_length", y="petal_length", hue="species", height=5, aspect=1.2)
plt.suptitle("Relación sepal_length vs petal_length con regresión", y=1.02)
plt.show()
Dataset con información sobre pasajeros del Titanic: edad, sexo, clase, si sobrevivieron o no, etc. Muy usado para aprender clasificación y análisis categórico.
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme(style="whitegrid", context="notebook")
titanic = sns.load_dataset("titanic")
sns.barplot(data=titanic, x="class", y="survived", hue="sex", errorbar=None, palette="pastel")
plt.title("Supervivencia por clase y sexo")
plt.ylabel("Proporción de supervivientes")
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme(style="ticks", context="talk")
titanic = sns.load_dataset("titanic").dropna(subset=["age", "survived"])
sns.histplot(data=titanic, x="age", hue="survived", bins=30, kde=True, element="step")
plt.title("Distribución de edades según supervivencia")
plt.xlabel("Edad")
plt.ylabel("Frecuencia")
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme(style="white", context="notebook")
titanic = sns.load_dataset("titanic")
corr = titanic.corr(numeric_only=True)
sns.heatmap(corr, annot=True, cmap="vlag", center=0, cbar_kws={"label": "Correlación"})
plt.title("Matriz de correlación (Titanic)")
plt.show()