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 pandas as pd
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 pandas as pd
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 pandas as pd
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 pandas as pd
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 pandas as pd
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 pandas as pd
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 pandas as pd
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 pandas as pd
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 pandas as pd
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:

Otras extensiones