¿Qué es Matplotlib?
- Matplotlib y Seaborn (visualización de
datos)
Matplotlib es una biblioteca de Python para crear visualizaciones
estáticas, animadas e interactivas. Su módulo principal es pyplot,
que ofrece una interfaz similar a MATLAB.
Permite crear: gráficos de líneas, barras, dispersión (scatter),
histogramas, gráficos de pastel, entre otros.
Se usa ampliamente en ciencia de datos, ingeniería, finanzas
y machine learning.
Teoría Básica
Matplotlib sigue un modelo basado en objetos, donde:
Figure: es el lienzo principal (puede tener varias subgráficas).
Axes: representa cada gráfico o subplot (con ejes X e Y).
Axis: se refiere a los propios ejes (valores, escalas,
etiquetas).
Instalación
pip install matplotlib
Importación estándar
import [Link] as plt
Comandos Básicos
1. Gráfico de líneas
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
[Link](x, y) # Dibuja la línea
[Link]("Gráfico de líneas")
[Link]("Eje X")
[Link]("Eje Y")
[Link](True)
[Link]() # Muestra el gráfico
2. Gráfico de barras
x = ["A", "B", "C"]
y = [5, 7, 3]
[Link](x, y)
[Link]("Gráfico de Barras")
[Link]()
3. Gráfico de dispersión (scatter)
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
[Link](x, y, color='red')
[Link]("Gráfico de Dispersión")
[Link]()
4. Histograma
import numpy as np
data = [Link](1000)
[Link](data, bins=30, color='green')
[Link]("Histograma")
[Link]()
5. Gráfico de pastel (pie chart)
labels = ['Manzanas', 'Bananas', 'Cerezas']
sizes = [40, 35, 25]
[Link](sizes, labels=labels, autopct='%1.1f%%')
[Link]("Gráfico de Pastel")
[Link]()
Personalización
Cambiar color, estilo y marcador de líneas
[Link](x, y, color='green', linestyle='--', marker='o')
Leyenda
[Link](x, y, label='Datos')
[Link]()
Subplots (varios gráficos en una figura)
[Link](1, 2, 1) # 1 fila, 2 columnas, primer gráfico
[Link]([1,2,3], [1,4,9])
[Link](1, 2, 2) # Segundo gráfico
[Link]([1,2,3], [9,4,1])
[Link]()
Guardar el gráfico
[Link]("[Link]")
Otros módulos útiles en visualización
Seaborn: extensión de Matplotlib para gráficos estadísticos más
atractivos.
Pandas: tiene integración directa con Matplotlib ([Link]()).
Plotly: para gráficos interactivos.
Buenas prácticas
Siempre usa [Link]() al final para visualizar.
Utiliza fig, ax = [Link]() para mayor control sobre el
gráfico.
Etiqueta tus ejes y agrega leyendas.
Ejemplos más avanzados usando Matplotlib, incluyendo:
1. Gráficos de series temporales
2. Integración con Pandas
3. Gráficos múltiples con subplots
4. Gráficos 3D
5. Uso de estilos y temas
6. Guardar gráficos en diferentes formatos
1. Gráfico de Series Temporales
Las series temporales son comunes en datos financieros o
meteorológicos. Usamos pandas para manejar fechas
import [Link] as plt
import pandas as pd
import numpy as np
# Crear datos de fechas
fechas = pd.date_range(start="2025-01-01", periods=100)
valores = [Link](100).cumsum()
# Crear DataFrame
df = [Link]({"Fecha": fechas, "Valor": valores})
df.set_index("Fecha", inplace=True)
# Graficar
[Link](figsize=(10, 4))
[Link]([Link], df["Valor"])
[Link]("Serie Temporal")
[Link]("Fecha")
[Link]("Valor acumulado")
[Link](True)
[Link]()
2. Integración con Pandas
Pandas se integra naturalmente con Matplotlib
import pandas as pd
import [Link] as plt
# Crear un DataFrame de ejemplo
data = {
"Mes": ["Ene", "Feb", "Mar", "Abr"],
"Ventas": [100, 120, 90, 150],
"Gastos": [80, 60, 70, 100]
}
df = [Link](data)
# Graficar columnas
[Link](x="Mes", y=["Ventas", "Gastos"], kind="bar")
[Link]("Ventas vs Gastos")
[Link]("Monto")
[Link](True)
[Link]()
3. Gráficos múltiples con Subplots
Ideal para comparar variables en un mismo panel
x = [Link](0, 10, 100)
y1 = [Link](x)
y2 = [Link](x)
fig, axs = [Link](2, 1, figsize=(8, 6)) # 2 filas, 1 columna
axs[0].plot(x, y1, label="Seno", color='blue')
axs[0].legend()
axs[0].set_title("Seno")
axs[1].plot(x, y2, label="Coseno", color='green')
axs[1].legend()
axs[1].set_title("Coseno")
plt.tight_layout()
[Link]()
4. Gráficos 3D
Necesitas importar el módulo 3D desde Matplotlib.
from mpl_toolkits.mplot3d import Axes3D
import [Link] as plt
import numpy as np
fig = [Link]()
ax = fig.add_subplot(111, projection='3d')
# Datos
x = [Link](-5, 5, 100)
y = [Link](-5, 5, 100)
X, Y = [Link](x, y)
Z = [Link]([Link](X**2 + Y**2))
# Superficie
ax.plot_surface(X, Y, Z, cmap='viridis')
ax.set_title("Gráfico 3D de superficie")
[Link]()
5. Estilos de Matplotlib
Matplotlib tiene estilos predefinidos para mejorar la estética
[Link]('ggplot')
# También: 'seaborn', 'bmh', 'fivethirtyeight', 'classic', etc.
x = [Link](0, 10, 100)
[Link](x, [Link](x), label="Seno")
[Link](x, [Link](x), label="Coseno")
[Link]("Estilo ggplot aplicado")
[Link]()
[Link]()
Puedes listar los estilos disponibles con
print([Link])
6. Guardar gráficos en diferentes formatos
Puedes guardar gráficos con
[Link]([1, 2, 3], [4, 5, 6])
[Link]("Gráfico para guardar")
[Link]("mi_grafico.png") # PNG
[Link]("mi_grafico.pdf") # PDF
[Link]("mi_grafico.svg") # SVG
[Link]("mi_grafico.jpg", dpi=300) # Más resolución
[Link]()