matplotlib — Figure y Axes
Al finalizar este tema
Comprenderás la estructura Figure/Axes de matplotlib y podrás crear gráficos básicos por ti mismo.
¿Qué es matplotlib?
matplotlib es una biblioteca de Python para crear gráficos y diagramas. Al visualizar los datos, los patrones se vuelven mucho más evidentes que al observar solo los números.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]y = [2, 4, 6, 8, 10]
plt.plot(x, y)plt.show()plt es la abreviatura convencional de matplotlib.pyplot.
Figure y Axes
La estructura principal de matplotlib consta de dos elementos.
Figure (hoja de dibujo)
└── Axes (área del gráfico)
├── eje x (x-axis)
├── eje y (y-axis)
├── título (title)
└── datos (líneas, barras, puntos...)- Figura: Área total de la imagen. Lienzo.
- Ejes: Espacio donde se traza el gráfico real. Se pueden incluir varios ejes en una misma figura.
import matplotlib.pyplot as plt
# Creación explícita de Figure y Axesfig, ax = plt.subplots()
ax.plot([1, 2, 3], [10, 20, 30])ax.set_title("My First Plot")ax.set_xlabel("X axis")ax.set_ylabel("Y axis")
plt.show()plt.subplots() crea una Figura y unos Axes simultáneamente. Este es el método más recomendado.
Gráfico de líneas (Line Plot)
Se utiliza para mostrar cambios a lo largo del tiempo.
import matplotlib.pyplot as plt
months = ["Jan", "Feb", "Mar", "Apr", "May"]sales = [100, 120, 90, 150, 130]
fig, ax = plt.subplots(figsize=(8, 5))ax.plot(months, sales, marker="o", color="blue", linewidth=2)ax.set_title("Monthly Sales")ax.set_ylabel("Sales")ax.grid(True, alpha=0.3)
plt.show()marker="o": Marcar cada punto de datos con un círculofigsize=(8, 5): 8 pulgadas de ancho, 5 pulgadas de altogrid(True): Mostrar cuadrícula
Gráfico de barras
Se utiliza para realizar comparaciones por categoría.
import matplotlib.pyplot as plt
languages = ["Python", "JS", "Java", "C++"]users = [30, 25, 20, 15]
fig, ax = plt.subplots()ax.bar(languages, users, color=["#3776AB", "#F7DF1E", "#B07219", "#00599C"])ax.set_title("Programming Language Popularity")ax.set_ylabel("Users (%)")
plt.show()Al pasar una lista de colores a ax.bar(), se puede asignar un color diferente a cada barra.
Gráfico de dispersión
Muestra la relación entre dos variables.
import matplotlib.pyplot as pltimport numpy as np
np.random.seed(42)x = np.random.randn(50)y = 2 * x + np.random.randn(50) * 0.5
fig, ax = plt.subplots()ax.scatter(x, y, alpha=0.7, color="coral")ax.set_title("Scatter Plot Example")ax.set_xlabel("X")ax.set_ylabel("Y")
plt.show()alpha=0.7 es la opacidad. Es útil cuando hay muchos puntos superpuestos.
Varios gráficos a la vez
import matplotlib.pyplot as plt
fig, axes = plt.subplots(1, 3, figsize=(15, 4))
# Primero: gráfico de líneasaxes[0].plot([1, 2, 3], [1, 4, 9])axes[0].set_title("Line")
# Segundo: gráfico de barrasaxes[1].bar(["A", "B", "C"], [5, 3, 7])axes[1].set_title("Bar")
# Tercero: gráfico de dispersiónaxes[2].scatter([1, 2, 3, 4], [4, 1, 3, 2])axes[2].set_title("Scatter")
plt.tight_layout()plt.show()plt.subplots(1, 3) crea una subgráfica de 1 fila y 3 columnas. tight_layout() ajusta automáticamente el solapamiento entre los gráficos.
Guardar
# Guardar en archivo en lugar de mostrar en pantallafig.savefig("chart.png", dpi=150, bbox_inches="tight")dpi=150: Resolución (predeterminada: 100)bbox_inches="tight": Ajuste automático de márgenes- Formatos compatibles: PNG, PDF, SVG, JPG