import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib.colors
= sns.load_dataset(
diamonds "diamonds", cache=True, data_home=None
5000)
).sample(
# You can uncomment this line to change the style of the graphs.
# plt.style.use('ggplot')
Data-vis
Introducción a seaborn
Seaborn
Seaborn es una biblioteca de Python para la visualización de datos que está construida sobre Matplotlib. Está específicamente diseñada para crear gráficos estadísticos y tiene la ventaja de una integración estrecha con la biblioteca Pandas.
Antes de comenzar a crear gráficos con Seaborn, es importante tener una buena comprensión de la estructura de tus datos y asegurarte de que tu conjunto de datos esté preprocesado y listo para el análisis. Seaborn ofrece varias funciones y características, incluyendo:
Está orientada a trabajar con dataframes de Pandas, lo que te permite examinar las relaciones entre múltiples variables dentro de tu conjunto de datos.
Seaborn proporciona un fuerte soporte para manejar variables categóricas y visualizar observaciones y estadísticas agregadas.
Puedes usarla para visualizar distribuciones univariadas y bivariadas, facilitando la comprensión de las características de tus datos.
Ofrece características de estimación automática, como la creación de modelos de regresión lineal, simplificando la visualización de relaciones dentro de tus datos.
Puedes obtener información sobre la estructura general de los conjuntos de datos.
Seaborn proporciona abstracciones de alto nivel para crear arreglos en forma de cuadrícula de múltiples gráficos.
Puedes personalizar el estilo de tus visualizaciones con varios temas incorporados.
Incluye herramientas para seleccionar paletas de colores, haciendo que tus gráficos sean visualmente atractivos e informativos.
Funciones Gráficas Orientadas a lo Visual
Las fortalezas de Seaborn radican en sus funciones gráficas orientadas a lo visual, que te permiten crear gráficos visualmente atractivos que transmiten información de tus datos. Estas funciones están específicamente diseñadas para manejar diferentes tipos de datos y tareas de visualización. Vamos a explorar las funciones clave que mencionaste:
displot (abreviatura de “distribution plot”). Se utiliza para visualizar la distribución de una sola variable numérica. Con displot, puedes crear varios tipos de gráficos, como histogramas, estimaciones de densidad de kernel (KDE) y gráficos de función de distribución acumulativa empírica (ECDF). Esto te ayuda a comprender la forma, la dispersión y las tendencias centrales de tus datos.
relplot, abreviatura de “relationship plot”, se utiliza para visualizar la relación entre dos variables numéricas. Esta función puede generar gráficos de dispersión, gráficos de líneas y otras visualizaciones para mostrar cómo están relacionadas dos variables numéricas. Es especialmente útil para explorar patrones, correlaciones y tendencias en los datos.
catplot, o “categorical plot”, se utiliza principalmente para crear visualizaciones que involucren variables categóricas. Las variables categóricas representan diferentes categorías o grupos, y catplot puede generar varios tipos de gráficos como gráficos de barras, gráficos de cajas y gráficos de violín. Estos gráficos te ayudan a comprender la distribución y las relaciones dentro de tus datos categóricos.
jointplot se utiliza para la visualización bivariada. Te permite explorar la relación entre dos variables numéricas simultáneamente. Esta función crea un gráfico de dispersión de las dos variables junto con histogramas o estimaciones de densidad para cada variable en los márgenes. Esto facilita la comprensión de la distribución conjunta de las variables e identificar patrones, correlaciones o agrupaciones.
Cómo funciona
El uso básico de Seaborn es:
# Basic structure
-geometry(
sns.visualization="Dataset",
data="X axis var",
x="Y axis var",
y="Color var"
hue
)
# Visual oriented function
type-of.visualization(
sns.="Dataset",
data="X axis var",
x="Y axis var",
y="Color var",
hue= "visualization-geometry",
kind = "Column faceting var",
col = "Row faceting var"
row )
Further reading
Lee el tutorial de Datacamp
Lee la documentation de Seaborn
Visita The Python Graph Gallery para inspiración.
Basics
="carat", y = "price", data = diamonds) #oriented to data manipulation sns.scatterplot(x
Count plot
= "cut", data = diamonds) sns.countplot(x
# sns.set(color_codes=True)
= (diamonds["cut"]
cut_percent =True)
.value_counts(normalize'percent')
.rename(
.reset_index())
="cut",y="percent", data = cut_percent) sns.barplot(x
Histograma
= "price", data = diamonds) sns.histplot(x
= "price", hue="color", data = diamonds) sns.histplot(x
= "price", data = diamonds, stat="percent") sns.histplot(x
= "price", hue="color", data = diamonds, stat = "probability") sns.histplot(x
Estimador de densidad kernel
= "price", data = diamonds) sns.kdeplot(x
= "price", hue="color", data = diamonds) sns.kdeplot(x
ECDF plot
= "price", data = diamonds) sns.ecdfplot(x
= "price", hue="color", data = diamonds) sns.ecdfplot(x
Distribution plots
= sns.displot(x = "price", data = diamonds, kind = "hist") sns_gr
= sns.displot(x = "price", data = diamonds, kind = "hist", row = "cut") sns_gr
= sns.displot(x = "price", data = diamonds, kind = "kde", col = "cut") sns_gr
= sns.displot(x = "price", hue = "color",data = diamonds, kind = "ecdf", col = "cut") sns_gr
Scatterplot
="carat", y = "price", data = diamonds) sns.scatterplot(x
="carat", y = "price", hue = "cut", data = diamonds) sns.scatterplot(x
Line plot
= np.linspace(0, 5, 11)
x0 = np.sin(x0)
y0
= x0, y = y0) sns.lineplot(x
Relational plot
= sns.relplot(x = x0, y = y0, kind = "line") sns_gr
= sns.relplot(x="carat", y = "price", data = diamonds, kind = "scatter") sns_gr
= sns.relplot(
sns_gr ="carat",
x= "price",
y = diamonds,
data = "scatter",
kind = "cut"
row )
= sns.relplot(
sns_gr ="carat",
x= "price",
y = diamonds,
data = "scatter",
kind = "color"
col )
Cat plots
= sns.catplot(
sns_gr ="cut",
x= "price",
y = diamonds,
data = "color"
hue )
= sns.catplot(
sns_gr ="cut",
x= "price",
y = diamonds,
data = "color",
hue = True
dodge )
= sns.catplot(
sns_gr ="cut",
x= "price",
y = diamonds,
data = "color",
hue = "bar",
kind = True
dodge )
= sns.catplot(
sns_gr ="cut",
x= "price",
y = diamonds,
data = "color",
hue = "violin",
kind = True
dodge )
Joint plots
="carat", y = "price", data = diamonds) sns.jointplot(x
="carat", y = "price", data = diamonds, kind = "kde") sns.jointplot(x
="carat", y = "price", data = diamonds, kind = "hist") sns.jointplot(x
="carat", y = "price", data = diamonds, kind = "reg") sns.jointplot(x
="carat", y = "price", hue = "color", data = diamonds) sns.jointplot(x
Ejercicio
Genera las siguientes gráficas.