Guía práctica de Matplotlib
Guía práctica de Matplotlib
Matplotlib es la librería fundamental de Python para creación de gráficos 2D. Proporciona
una API extensa y flexible para generar desde gráficas simples hasta figuras complejas con
controles precisos sobre estilos, ejes, leyendas, anotaciones y formatos de salida. Es la
base sobre la que se construyen otras bibliotecas de visualización en Python, como seaborn
y [Link].
Conceptos básicos:
- Figura (`Figure`): el contenedor principal para una o varias subplots.
- Ejes (`Axes`): área donde se dibuja un gráfico; una figura puede contener múltiples
ejes.
- Artistas (`Artist`): elementos dibujables (líneas, textos, patches) que componen la
visualización.
Estilos y personalización:
Matplotlib permite personalizar colores, estilos de línea, marcadores, anchos, escalas
logarítmicas y más. Usar `rcParams` o estilos predefinidos (`[Link]('seaborn')`)
ayuda a mantener consistencia visual. Para reproducibilidad, fije tamaños de figura y DPI
al exportar.
Tipos de gráficas comunes:
- Líneas (`plot`): series temporales y tendencias.
- Barras (`bar`, `barh`): comparaciones categóricas.
- Histogramas (`hist`): distribución de una variable.
- Dispersiones (`scatter`): relaciones entre variables.
- Boxplots y violín: resumen estadístico y distribución por grupos.
Subplots y layout:
`subplots()` es la forma moderna de crear mallas de ejes; `gridspec` proporciona control
fino del layout. `constrained_layout` y `tight_layout` ayudan a ajustar espaciados
automáticamente.
Anotaciones y texto:
Use `annotate` para indicar puntos de interés, flechas y textos con offsets y cuadros.
Ajuste fuentes y alineaciones para legibilidad.
Guardado y formatos:
Matplotlib puede exportar a muchos formatos: PNG, PDF, SVG, EPS. PDF y SVG son
recomendados para gráficos vectoriales en documentos.
Integración con pandas y seaborn:
pandas integra `plot` que usa matplotlib internamente, simplificando gráficos rápidos
desde `DataFrame` y `Series`. seaborn ofrece API de alto nivel con estilos y paletas por
defecto, ideal para análisis estadístico.
Buenas prácticas de rendimiento:
- Para muchas series, prefiera `LineCollection` o decimar datos para mejorar velocidad.
- Para render en web, considere generar imágenes estáticas en servidor o usar herramientas
interactivas (Bokeh, Plotly) si se requiere interacción.
Ejemplo rápido (líneas y scatter con subplots):
```python
import [Link] as plt
import numpy as np
x = [Link](0, 10, 200) Página 1 de 2
y1 = [Link](x)
Guía práctica de Matplotlib
y2 = [Link](x)
fig, axs = [Link](2, 1, figsize=(8, 6))
axs[0].plot(x, y1, label='sin', color='tab:blue')
axs[0].plot(x, y2, label='cos', color='tab:orange')
axs[0].legend()
axs[0].set_title('Funciones trigonométricas')
axs[1].scatter(x, y1, c=y2, cmap='viridis')
axs[1].set_title('Scatter coloreado por cos(x)')
plt.tight_layout()
[Link]('figura_ejemplo.png', dpi=150)
```
Avanzado:
Matplotlib permite crear animaciones (`FuncAnimation`), figuras 3D (mplot3d), y
extensiones via custom backends. Personalizar backends o escribir plugins es posible para
necesidades específicas.
Conclusión:
Conocer la API de matplotlib y sus patrones (figura/axes/artists) permite crear
visualizaciones claras y reproducibles para análisis exploratorio, reporting y publicación
académica. Esta guía condensa los aspectos clave y ejemplos prácticos para empezar y
profundizar en la librería.
Página 2 de 2