Visualización de datos con Pandas
La visualización de datos es una parte importante del análisis de datos; nos ayuda a comprender e interpretar mejor los patrones, tendencias y relaciones de los datos.
A través de gráficos, tablas y otras formas, la visualización de datos convierte números complejos e información estadística en imágenes fáciles de entender, facilitando así la toma de decisiones.
Pandas proporciona integración conMatplotlibySeabornbibliotecas de visualización, etc.
En Pandas, la funcionalidad de visualización de datos se logra principalmente a través deDataFrame.plot()ySeries.plot()métodos, que en realidad son una encapsulación de la biblioteca Matplotlib, simplificando el proceso de dibujo de gráficos.
| Tipo de gráfico | Descripción | Método |
|---|---|---|
| Gráfico de líneas | Muestra la tendencia de los datos a lo largo del tiempo u otras variables continuas. | df.plot(kind='line') |
| Gráfico de barras | Compara datos de diferentes categorías. | df.plot(kind='bar') |
| Gráfico de barras horizontales | Compara datos de diferentes categorías, pero con barras dispuestas horizontalmente. | df.plot(kind='barh') |
| Histograma | Muestra la distribución de los datos. | df.plot(kind='hist') |
| Gráfico de dispersión | Muestra la relación entre dos variables numéricas. | df.plot(kind='scatter', x='col1', y='col2') |
| Gráfico de caja | Muestra la distribución de los datos, incluyendo la mediana, los cuartiles, etc. | df.plot(kind='box') |
| Gráfico de densidad | Muestra la distribución de densidad de los datos. | df.plot(kind='kde') |
| Gráfico circular | Muestra la proporción de las diferentes partes en el conjunto. | df.plot(kind='pie') |
| Gráfico de áreas | Muestra los valores acumulados de los datos. | df.plot(kind='area') |
Las funciones y métodos básicos de visualización de datos en Pandas pueden satisfacer la mayoría de las necesidades diarias de visualización de datos, pero si se desea lograr visualizaciones más complejas, se pueden usar junto con Matplotlib y Seaborn para realizar un ajuste más fino de los gráficos.
I. Resumen de la visualización de datos en Pandas
Los métodos proporcionados por Pandasplot()pueden dibujar fácilmente diferentes tipos de gráficos, incluyendo gráficos de líneas, de barras, histogramas, de dispersión, etc.plot()Estos métodos tienen muchos parámetros para personalizar el estilo, el color, las etiquetas, etc. de los gráficos.
1. Métodosplot()básicos
| Parámetro | Descripción |
|---|---|
kind |
Tipo de gráfico, admite'line', 'bar', 'barh', 'hist', 'box', 'kde', 'density', 'area', 'pie'tipos como, etc. |
x |
Establece la columna de datos del eje x |
y |
Establece la columna de datos del eje y |
title |
Título del gráfico |
xlabel |
Etiqueta del eje x |
ylabel |
Etiqueta del eje y |
color |
Establece el color del gráfico |
figsize |
Establece el tamaño del gráfico (ancho, alto) |
legend |
Si mostrar la leyenda |
2. Tipos de gráficos comunes
| Tipo de gráfico | Descripción | Uso común |
|---|---|---|
| Gráfico de líneas | Se utiliza para mostrar tendencias de datos que cambian con el tiempo. | df.plot(kind='line') |
| Gráfico de barras | Se utiliza para mostrar datos comparativos entre categorías. | df.plot(kind='bar') |
| Gráfico de barras horizontales | Similar al gráfico de barras, pero las barras son horizontales. | df.plot(kind='barh') |
| Histograma | Se utiliza para mostrar la distribución de los datos (distribución de frecuencias). | df.plot(kind='hist') |
| Gráfico de dispersión | Se utiliza para mostrar la relación entre dos variables numéricas. | df.plot(kind='scatter', x='col1', y='col2') |
| Gráfico de caja | Se utiliza para mostrar la distribución de los datos, valores atípicos y cuartiles. | df.plot(kind='box') |
| Gráfico de densidad | Se utiliza para mostrar la distribución de densidad de los datos. | df.plot(kind='kde') |
| Gráfico circular | Se utiliza para mostrar la proporción de cada parte respecto al total. | df.plot(kind='pie') |
| Gráfico de áreas | Se utiliza para mostrar valores acumulados (similar al gráfico de líneas, pero con colores rellenos). | df.plot(kind='area') |
II. Ejemplos de visualización de datos
1. Gráfico de líneas (Line Plot)
El gráfico de líneas se utiliza generalmente para mostrar la tendencia de los datos a lo largo del tiempo.
Ejemplo
import matplotlib.pyplot as plt
# Datos de ejemplo
data = {'Year': [2015, 2016, 2017, 2018, 2019, 2020],
'Sales': [100, 150, 200, 250, 300, 350]}
df = pd.DataFrame(data)
# Dibujar gráfico de líneas
df.plot(kind='line', x='Year', y='Sales', title='Sales Over Years', xlabel='Year', ylabel='Sales', figsize=(10, 6))
plt.show()
Salida:

2. Gráfico de barras (Bar Chart)
El gráfico de barras se utiliza para mostrar comparaciones entre diferentes categorías, especialmente adecuado para datos discretos.
Ejemplo
import matplotlib.pyplot as plt
# Datos de ejemplo
data = {'Category': ['A', 'B', 'C', 'D'],
'Value': [10, 15, 7, 12]}
df = pd.DataFrame(data)
# Dibujar gráfico de barras
df.plot(kind='bar', x='Category', y='Value', title='Category Values', xlabel='Category', ylabel='Value', figsize=(8, 5))
plt.show()
Salida:

3. Gráfico de dispersión (Scatter Plot)
El gráfico de dispersión se utiliza para mostrar la relación entre dos variables numéricas.
Ejemplo
import matplotlib.pyplot as plt
# Datos de ejemplo
data = {'Height': [150, 160, 170, 180, 190],
'Weight': [50, 60, 70, 80, 90]}
df = pd.DataFrame(data)
# Dibujar gráfico de dispersión
df.plot(kind='scatter', x='Height', y='Weight', title='Height vs Weight', xlabel='Height (cm)', ylabel='Weight (kg)', figsize=(8, 5))
plt.show()
Salida:

4. Histograma
El histograma se utiliza para mostrar la distribución de los datos, especialmente para describir la distribución de frecuencias.
Ejemplo
import matplotlib.pyplot as plt
# Datos de ejemplo
data = {'Scores': [55, 70, 85, 90, 60, 75, 80, 95, 100, 65]}
df = pd.DataFrame(data)
# Dibujar histograma
df.plot(kind='hist', y='Scores', bins=5, title='Scores Distribution', xlabel='Scores', figsize=(8, 5))
plt.show()
Salida:

5. Gráfico de caja (Box Plot)
El gráfico de caja se utiliza para mostrar la distribución de los datos, incluyendo la mediana, los cuartiles y los valores atípicos.
Ejemplo
import matplotlib.pyplot as plt
# Datos de ejemplo
data = {'Scores': [55, 70, 85, 90, 60, 75, 80, 95, 100, 65]}
df = pd.DataFrame(data)
# Dibujar diagrama de caja
df.plot(kind='box', title='Scores Boxplot', ylabel='Scores', figsize=(8, 5))
plt.show()
Salida:

6. Gráfico circular (Pie Chart)
El gráfico circular se utiliza para mostrar la proporción de cada parte respecto al total.
Ejemplo
import matplotlib.pyplot as plt
# Datos de ejemplo
data = {'Category': ['A', 'B', 'C', 'D'],
'Value': [10, 15, 7, 12]}
df = pd.DataFrame(data)
# Dibujar gráfico circular
df.plot(kind='pie', y='Value', labels=df['Category'], autopct='%1.1f%%', title='Category Proportions', figsize=(8, 5))
plt.show()
Salida:

III. Visualización con Seaborn
Seaborn es una biblioteca de visualización de datos de alto nivel basada en Matplotlib, que ofrece gráficos más atractivos y fáciles de usar, así como una mayor variedad de tipos de gráficos estadísticos.
En Pandas, se puede usar directamente junto con Seaborn.
Mapa de calor (Heatmap):
Ejemplo
import seaborn as sns
import matplotlib.pyplot as plt
# Datos de ejemplo
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
# Dibujar mapa de calor
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
plt.show()
Salida:

Matriz de gráficos de dispersión entre todas las características numéricas del conjunto de datos.:
Ejemplo
import seaborn as sns
import matplotlib.pyplot as plt
# Datos de ejemplo
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
sns.pairplot(df)
plt.show()
Salida:

IV. Personalización avanzada de Matplotlib
Además de usar losplot()métodos proporcionados por Pandas, Matplotlib también puede ofrecer funciones de personalización más flexibles, como añadir títulos, etiquetas, configurar el estilo del gráfico, ajustar los ejes, etc.
Ejemplo
import seaborn as sns
import matplotlib.pyplot as plt
# Datos de ejemplo
data = {'Year': [2015, 2016, 2017, 2018, 2019],
'Sales': [100, 150, 200, 250, 300]}
df = pd.DataFrame(data)
# Dibujar gráfico de líneas
plt.plot(df['Year'], df['Sales'], color='blue', marker='o')
# Personalización
plt.title('Sales Over Years')
plt.xlabel('Year')
plt.ylabel('Sales')
plt.grid(True)
# Mostrar
plt.show()
Salida:
