12. Visualización rápida con Pandas

Pandas se integra con Matplotlib para generar gráficos básicos sin salir del DataFrame o la Serie. Resulta una herramienta ideal para un EDA (análisis exploratorio de datos) rápido, siglas que refieren al proceso de exploración inicial.

Instalá matplotlib si todavía no lo tenés disponible:

pip install matplotlib

Luego importá ambas librerías antes de crear gráficos:

import pandas as pd
import matplotlib.pyplot as plt
💡 Asegurate de importar pyplot; sin él los gráficos no se muestran.

12.1 Gráficos básicos con .plot()

.plot() detecta el tipo de gráfico según la estructura de los datos y el parámetro kind.

Ejemplo inicial

datos = {
    "Mes": ["Enero", "Febrero", "Marzo", "Abril", "Mayo"],
    "Ventas": [100, 120, 90, 150, 200]
}
df = pd.DataFrame(datos)
# Gráfico de líneas
df.plot(x="Mes", y="Ventas", kind="line", marker="o", title="Ventas mensuales")
plt.show()
👉 Parámetros frecuentes: x (eje horizontal), y (eje vertical), kind (line, bar, scatter, area...) y marker para resaltar puntos.

Gráfico de barras

df.plot(x="Mes", y="Ventas", kind="bar", title="Ventas por mes")
plt.show()

Gráfico de dispersión

df["Clientes"] = [30, 40, 35, 50, 65]
df.plot(x="Clientes", y="Ventas", kind="scatter", title="Relación Clientes-Ventas")
plt.show()

12.2 Histogramas

Los histogramas revelan la distribución de los datos y ayudan a identificar sesgos o valores atípicos.

Distribución de edades

import numpy as np
df_hist = pd.DataFrame({"Edades": np.random.randint(18, 65, size=100)})
df_hist["Edades"].plot(kind="hist", bins=10, title="Distribución de edades")
plt.xlabel("Edad")
plt.show()
👉 bins controla la cantidad de intervalos: más bins ofrecen mayor detalle, menos bins suavizan la distribución.

12.3 Boxplots

Los diagramas de caja comparan mediana, cuartiles y valores atípicos (outliers, observaciones que se alejan notablemente del resto) entre columnas.

Comparar trimestres

df_box = pd.DataFrame({
    "Ventas_Q1": [100, 120, 130, 110, 140],
    "Ventas_Q2": [200, 210, 190, 220, 230]
})
df_box.plot(kind="box", title="Distribución de ventas por trimestre")
plt.show()
👉 Ideal para evaluar variabilidad y detectar outliers en distintas columnas a la vez.

12.4 Gráficos de líneas

Perfectos para series temporales o tendencias, especialmente cuando existe un DatetimeIndex.

Evolución mensual

fechas = pd.date_range("2024-01-01", periods=6, freq="ME")
ventas = [100, 120, 115, 150, 180, 200]
df_line = pd.DataFrame({"Fecha": fechas, "Ventas": ventas})
df_line.plot(x="Fecha", y="Ventas", kind="line", marker="o", title="Evolución de ventas")
plt.show()
👉 Al usar un índice temporal, Pandas ajusta el eje X y formatea las fechas automáticamente.

Resumen del tema 12

  • .plot(kind="...") genera rápidamente líneas, barras, áreas o dispersión desde el DataFrame.
  • Histogramas (kind="hist") muestran la distribución de los datos.
  • Boxplots (kind="box") resumen estadística y outliers.
  • Gráficos de líneas destacan tendencias y series temporales sin esfuerzo adicional.