Tutorial de Seaborn
Seaborn es una biblioteca de visualización de datos de Python construida sobre Matplotlib, centrada en la creación de diversos gráficos estadísticos para presentar y comprender los datos de manera más fácil.
El objetivo de diseño de Seaborn es simplificar el proceso de visualización de datos estadísticos, proporcionando una interfaz de alto nivel y temas predeterminados atractivos, permitiendo a los usuarios crear gráficos complejos con poco código.
Seaborn ofrece algunas interfaces de alto nivel sencillas que permiten dibujar fácilmente varios gráficos estadísticos, incluyendo diagramas de dispersión, gráficos de líneas, gráficos de barras, mapas de calor, etc., con buenos efectos estéticos.
Seaborn presta atención a la estética en su diseño; sus temas predeterminados y paletas de colores están cuidadosamente seleccionados para que los gráficos sean más atractivos.
Instalación de Seaborn:
pip install seaborn
Seaborn proporciona varios temas y paletas de colores integrados, que se pueden configurar para cambiar la apariencia de los gráficos.
Ejemplo
# Configurar el tema y la paleta de colores
sns.set_theme(style="whitegrid", palette="pastel")
Mediante la función sns.set_theme() se pueden elegir diferentes temas y contextos. A continuación se presentan algunos temas y contextos integrados en Seaborn:
Tema (Theme)
darkgrid(por defecto): tema de cuadrícula oscura.
import seaborn as sns # 设置为 darkgrid 主题 sns.set_theme(style="darkgrid")
whitegrid: tema de cuadrícula clara.
import seaborn as sns # 设置为 whitegrid 主题 sns.set_theme(style="whitegrid")
dark: tema oscuro, sin cuadrícula.
import seaborn as sns # 设置为 dark 主题 sns.set_theme(style="dark")
white: tema claro, sin cuadrícula.
import seaborn as sns # 设置为 white 主题 sns.set_theme(style="white")
ticks: tema oscuro con marcas de graduación.
import seaborn as sns # 设置为 ticks 主题 sns.set_theme(style="ticks")
Contexto (Context)
paper: adecuado para gráficos pequeños, con etiquetas y líneas más pequeñas.
import seaborn as sns # 设置为 paper 模板 sns.set_theme(context="paper")
notebook(por defecto): adecuado para portátiles y entornos similares, con etiquetas y líneas de tamaño medio.
import seaborn as sns # 设置为 notebook 模板 sns.set_theme(context="notebook")
talk: adecuado para diapositivas de presentaciones, con etiquetas y líneas de gran tamaño.
import seaborn as sns # 设置为 talk 模板 sns.set_theme(context="talk")
poster: adecuado para pósters, con etiquetas y líneas muy grandes.
import seaborn as sns # 设置为 poster 模板 sns.set_theme(context="poster")
Al configurar diferentes temas y contextos, se pueden ajustar propiedades como el tamaño de las figuras, el grosor de las líneas y los colores de Seaborn para adaptarse a diferentes escenarios de trazado. Estos temas y contextos integrados permiten a los usuarios crear gráficos atractivos y consistentes con mayor facilidad.
El siguiente ejemplo utiliza Seaborn y Matplotlib para dibujar un gráfico de barras simple que muestra las ventas de diferentes productos:
Ejemplo
import matplotlib.pyplot as plt
# Configurar el tema y la paleta de colores
sns.set_theme(style="darkgrid", palette="pastel")
# Datos de ejemplo
products = ["Product A", "Product B", "Product C", "Product D"]
sales = [120, 210, 150, 180]
# Crear el gráfico de barras
sns.barplot(x=products, y=sales)
# Agregar etiquetas y título
plt.xlabel("Products")
plt.ylabel("Sales")
plt.title("Product Sales by Category")
# Mostrar el gráfico
plt.show()
El resultado se muestra en la siguiente figura:

Funciones de trazado
Seaborn proporciona varias funciones de trazado para crear diversos gráficos estadísticos. A continuación se presentan las principales funciones de trazado de Seaborn y sus ejemplos correspondientes:
1. Diagrama de dispersión - sns.scatterplot()
Se utiliza para dibujar un diagrama de dispersión entre dos variables, con la opción de añadir una línea de tendencia.
Ejemplo
import matplotlib.pyplot as plt
import pandas as pd
# Crear un DataFrame de ejemplo
data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)
# Dibujar el diagrama de dispersión
sns.scatterplot(x='A', y='B', data=df)
plt.show()
El resultado se muestra en la siguiente figura:

2. Gráfico de líneas - sns.lineplot()
Se utiliza para dibujar un gráfico de líneas que muestra la tendencia de una variable a medida que cambia otra variable.
Ejemplo
import matplotlib.pyplot as plt
import pandas as pd
# Crear un DataFrame de ejemplo
data = {'X': [1, 2, 3, 4, 5], 'Y': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)
# Dibujar el gráfico de líneas
sns.lineplot(x='X', y='Y', data=df)
plt.show()
El resultado se muestra en la siguiente figura:

3. Gráfico de barras - sns.barplot()
Se utiliza para dibujar un gráfico de barras de la media u otra función de agregación de una variable.
Ejemplo
import matplotlib.pyplot as plt
import pandas as pd
# Crear un DataFrame de ejemplo
data = {'Category': ['A', 'B', 'C'], 'Value': [3, 7, 5]}
df = pd.DataFrame(data)
# Dibujar el gráfico de barras
sns.barplot(x='Category', y='Value', data=df)
plt.show()
El resultado se muestra en la siguiente figura:

4. Diagrama de caja - sns.boxplot()
Se utiliza para dibujar la distribución de una variable, incluyendo la mediana, los cuartiles, etc.
Ejemplo
import matplotlib.pyplot as plt
import pandas as pd
# Crear un DataFrame de ejemplo
data = {'Category': ['A', 'A', 'B', 'B', 'C', 'C'], 'Value': [3, 7, 5, 9, 2, 6]}
df = pd.DataFrame(data)
# Dibujar el diagrama de caja
sns.boxplot(x='Category', y='Value', data=df)
plt.show()
El resultado se muestra en la siguiente figura:

5. Mapa de calor - sns.heatmap()
Se utiliza para dibujar mapas de calor de datos matriciales, normalmente para mostrar la matriz de correlación.
Ejemplo
import matplotlib.pyplot as plt
import pandas as pd
# Crear un DataFrame de ejemplo
data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)
# Crear una matriz de correlación
correlation_matrix = df.corr()
# Visualizar la matriz de correlación con un mapa de calor
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt=".2f")
plt.show()
El resultado se muestra en la siguiente figura:

6. Gráfico de violín - sns.violinplot()
Se utiliza para mostrar la forma de la distribución y la estimación de densidad, combinando el diagrama de caja y la estimación de densidad kernel.
Ejemplo
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
# Crear un DataFrame de ejemplo
data = {'Category': ['A', 'A', 'B', 'B', 'C', 'C'], 'Value': [3, 7, 5, 9, 2, 6]}
df = pd.DataFrame(data)
# Dibujar el gráfico de violín
sns.violinplot(x='Category', y='Value', data=df)
plt.show()
El resultado se muestra en la siguiente figura:

Otras extensionesPara más contenido, puedes consultar el tutorial del sitio web oficial:https://seaborn.pydata.org/tutorial.html