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
pyplot
; sin él los gráficos no se muestran..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()
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()
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.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()
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()
.plot(kind="...")
genera rápidamente líneas, barras, áreas o dispersión desde el DataFrame.kind="hist"
) muestran la distribución de los datos.kind="box"
) resumen estadística y outliers.