Saltar al contenido

# graficos-con-python

Gráficos con Python

Volver a la portada del curso
Notebook

Ejercicio Básico de Matplotlib

Sección 1 · Introducción y Conceptos Básicos

Ejercicio básico de Matplotlib

En este ejercicio construyes tus primeros gráficos con Matplotlib de principio a fin. El objetivo es dominar la estructura que se repite en todos los gráficos: una figura, uno o varios ejes, los datos dibujados sobre los ejes y las etiquetas que hacen que el gráfico se entienda sin explicaciones adicionales.

Figura y ejes: las dos piezas clave

En Matplotlib, la figura es el lienzo completo y los ejes son cada área donde se dibuja un gráfico. La forma recomendada de trabajar es crear ambos con plt.subplots() y dibujar siempre sobre el objeto de ejes. Esta interfaz, llamada orientada a objetos, escala bien cuando más adelante combines varios gráficos en una misma figura.

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np

meses = np.arange(1, 13)
ventas = np.array([12, 15, 14, 18, 21, 25, 24, 27, 23, 20, 17, 22])

fig, ax = plt.subplots(figsize=(8, 4))
ax.plot(meses, ventas, marker="o", label="Ventas 2025")
ax.set_title("Ventas mensuales")
ax.set_xlabel("Mes")
ax.set_ylabel("Miles de unidades")
ax.legend()
fig.savefig("ventas.png", dpi=150)

Tres gráficos que usarás todo el tiempo

El gráfico de líneas muestra la evolución de un valor en el tiempo. El de dispersión revela la relación entre dos variables numéricas. El de barras compara cantidades entre categorías. Elegir bien el tipo de gráfico es la mitad del trabajo: la pregunta que quieres responder determina la forma.

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np

rng = np.random.default_rng(42)
x = rng.normal(0, 1, 100)
y = 2 * x + rng.normal(0, 0.5, 100)

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4))
ax1.scatter(x, y, alpha=0.7)
ax1.set_title("Dispersión: relación entre x e y")

productos = ["A", "B", "C", "D"]
unidades = [23, 45, 12, 36]
ax2.bar(productos, unidades, color="#2563EB")
ax2.set_title("Barras: unidades por producto")
fig.tight_layout()
fig.savefig("tipos.png", dpi=150)

El parámetro alpha controla la transparencia y ayuda cuando muchos puntos se superponen. tight_layout() ajusta los márgenes para que los títulos no se encimen.

Qué practicarás en el notebook

  • Crear figuras y ejes con plt.subplots().
  • Dibujar líneas, dispersión y barras con datos generados con semilla fija.
  • Agregar título, etiquetas de ejes y leyenda.
  • Guardar el resultado en un archivo PNG con buena resolución.

Errores comunes

  • Usar solo plt.plot en todo y perder el control cuando hay varios gráficos; trabaja sobre ax.
  • Olvidar las etiquetas de los ejes: un gráfico sin unidades no se puede interpretar.
  • Llamar a legend() sin haber puesto label en las series.
  • Usar un gráfico de líneas para categorías sin orden; para eso están las barras.

Cierre

Con la estructura figura-ejes y los tres tipos de gráfico básicos resueltos, ya puedes representar la mayoría de los datos cotidianos. En la siguiente sección aprenderás a personalizar cada detalle para que tus gráficos comuniquen con claridad.

Recursos