Matplotlib: Introducción y entorno

Aprende todo sobre Matplotlib: introducción y configuración del entorno. Descubre cómo empezar con esta biblioteca de visualización en Python.

Aprende Matplotlib GRATIS y certifícate

Matplotlib es una biblioteca de visualización de datos para Python que permite crear gráficos estáticos, interactivos y animados de alta calidad. Desarrollada originalmente por John Hunter en 2003, se ha convertido en una herramienta fundamental para científicos de datos, investigadores y analistas que necesitan representar información de manera visual.

La versatilidad de Matplotlib radica en su capacidad para generar desde simples gráficos de líneas hasta complejas visualizaciones científicas. Su diseño modular facilita la creación y personalización de prácticamente cualquier tipo de gráfico que podamos imaginar.

¿Por qué utilizar Matplotlib?

Existen varias razones por las que Matplotlib se ha consolidado como la biblioteca estándar para visualización de datos en Python:

  • Flexibilidad: permite crear una amplia variedad de gráficos
  • Integración: funciona perfectamente con NumPy, Pandas y otras bibliotecas científicas
  • Personalización: ofrece control detallado sobre cada elemento del gráfico
  • Exportación: permite guardar gráficos en múltiples formatos (PNG, PDF, SVG, etc.)
  • Comunidad: cuenta con una extensa documentación y una gran comunidad de usuarios

Instalación de Matplotlib

Para comenzar a trabajar con esta potente herramienta, necesitamos instalarla en nuestro sistema. La forma más sencilla es utilizando pip, el gestor de paquetes de Python.

pip install matplotlib

Si prefieres utilizar el gestor de paquetes conda, también puedes instalarlo con:

conda install matplotlib

Es recomendable instalar Matplotlib dentro de un entorno virtual para evitar conflictos con otras bibliotecas. Puedes crear un entorno virtual con:

python -m venv mi_entorno

Y activarlo (en Windows):

mi_entorno\Scripts\activate

O en macOS/Linux:

source mi_entorno/bin/activate

Verificación de la instalación

Una vez instalado, podemos verificar que todo funciona correctamente importando la biblioteca y comprobando su versión:

import matplotlib
print(matplotlib.__version__)

También podemos crear un gráfico sencillo para confirmar que la instalación se ha realizado con éxito:

import matplotlib.pyplot as plt
import numpy as np

# Creamos algunos datos de ejemplo
x = np.linspace(0, 10, 100)
y = np.sin(x)

# Creamos el gráfico
plt.figure(figsize=(8, 4))
plt.plot(x, y)
plt.title('Función seno')
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.grid(True)
plt.show()

Estructura y componentes de Matplotlib

Para comprender mejor cómo funciona esta biblioteca, es importante conocer su estructura jerárquica:

  • Figure: es el contenedor de nivel superior que puede contener múltiples ejes
  • Axes: es donde se dibujan los datos y donde se encuentran los ejes X e Y
  • Axis: son las líneas que representan los ejes con sus marcas y etiquetas
  • Artist: cualquier elemento visible en un gráfico (líneas, textos, etiquetas, etc.)

Matplotlib ofrece dos interfaces principales para crear gráficos:

  1. La interfaz pyplot: una colección de funciones que facilitan la creación rápida de gráficos (similar a MATLAB)
  2. La interfaz orientada a objetos: proporciona más control y flexibilidad para gráficos complejos

Veamos un ejemplo utilizando ambas interfaces:

import matplotlib.pyplot as plt
import numpy as np

# Datos de ejemplo
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)

# Interfaz pyplot (más sencilla)
plt.figure(figsize=(10, 4))
plt.subplot(1, 2, 1)
plt.plot(x, y)
plt.title('Usando pyplot')

# Interfaz orientada a objetos (más flexible)
fig, ax = plt.subplots(1, 1, figsize=(5, 4))
ax.plot(x, y)
ax.set_title('Usando interfaz orientada a objetos')
ax.set_xlabel('x')
ax.set_ylabel('sin(x)')

plt.tight_layout()
plt.show()

Backends de Matplotlib

Un concepto importante al trabajar con Matplotlib es el de los backends, que son los sistemas responsables de convertir las representaciones de los gráficos en imágenes que se pueden mostrar o guardar.

Existen dos tipos de backends:

  • Backends interactivos: permiten mostrar gráficos en ventanas y ofrecen interactividad (zoom, movimiento, etc.)
  • Backends no interactivos: generan imágenes estáticas para guardar en archivos

Podemos configurar el backend que deseamos utilizar de varias formas:

# Configurar el backend antes de importar pyplot
import matplotlib
matplotlib.use('Agg')  # Backend no interactivo para guardar imágenes
import matplotlib.pyplot as plt

# O temporalmente dentro del código
with plt.rc_context({'backend': 'Agg'}):
    # Código que utiliza este backend
    pass

Algunos backends comunes incluyen:

  • TkAgg: basado en Tkinter, funciona bien en la mayoría de sistemas
  • Qt5Agg: basado en PyQt5, ofrece buena interactividad
  • Agg: backend no interactivo rápido para generar imágenes
  • PDF: para generar archivos PDF directamente
  • SVG: para gráficos vectoriales escalables

Configuración básica de Matplotlib

Antes de sumergirnos en la creación de gráficos complejos, es útil conocer cómo configurar algunos parámetros globales de Matplotlib para ajustar el aspecto de nuestros gráficos:

import matplotlib.pyplot as plt
import matplotlib as mpl

# Configurar el estilo global
plt.style.use('seaborn-v0_8-darkgrid')

# Configurar parámetros específicos
mpl.rcParams['font.family'] = 'DejaVu Sans'
mpl.rcParams['font.size'] = 12
mpl.rcParams['axes.titlesize'] = 14
mpl.rcParams['figure.figsize'] = [10, 6]
mpl.rcParams['lines.linewidth'] = 2

Matplotlib incluye varios estilos predefinidos que podemos utilizar para cambiar rápidamente el aspecto de nuestros gráficos:

# Ver los estilos disponibles
print(plt.style.available)

# Probar diferentes estilos
styles = ['default', 'ggplot', 'seaborn-v0_8', 'bmh', 'classic']
fig, axes = plt.subplots(len(styles), 1, figsize=(8, 10))

for ax, style in zip(axes, styles):
    with plt.style.context(style):
        ax.plot(np.sin(np.linspace(0, 10, 100)))
        ax.set_title(f'Estilo: {style}')
    
plt.tight_layout()
plt.show()

Entornos de trabajo recomendados

Para trabajar eficientemente con Matplotlib, existen varios entornos de desarrollo especialmente adecuados:

  • Jupyter Notebook/JupyterLab: ideal para exploración y visualización interactiva
  • Visual Studio Code: con extensiones para Python y visualización de gráficos
  • PyCharm: ofrece buena integración con bibliotecas científicas
  • Spyder: diseñado específicamente para computación científica

En Jupyter, podemos configurar la visualización de gráficos en línea con:

%matplotlib inline

O para gráficos interactivos:

%matplotlib widget

Preparación del entorno para el curso

Para seguir este curso correctamente, es recomendable preparar un entorno de trabajo con las siguientes bibliotecas:

pip install matplotlib numpy pandas scipy seaborn

También resulta útil configurar un archivo .matplotlibrc en nuestro directorio de trabajo o en el directorio de configuración de Matplotlib para establecer nuestras preferencias por defecto:

# Ejemplo de archivo .matplotlibrc
figure.figsize: 10, 6
figure.dpi: 100
font.size: 12
axes.grid: True
grid.alpha: 0.3
savefig.dpi: 300
savefig.bbox: tight

Este archivo se puede ubicar en diferentes lugares dependiendo del sistema operativo:

  • Windows: C:\Users\username\.matplotlib\matplotlibrc
  • macOS/Linux: ~/.config/matplotlib/matplotlibrc o ~/.matplotlib/matplotlibrc

Próximos pasos

Una vez completada la instalación y configuración básica de Matplotlib, estaremos listos para explorar la creación de diferentes tipos de gráficos, su personalización y la integración con otras bibliotecas científicas de Python. En los próximos módulos del curso, profundizaremos en cada uno de estos aspectos para dominar por completo esta poderosa herramienta de visualización.

Empezar curso de Matplotlib

Lecciones de este módulo de Matplotlib

Lecciones de programación del módulo Introducción y entorno del curso de Matplotlib.

Ejercicios de programación en este módulo de Matplotlib

Evalúa tus conocimientos en Introducción y entorno con ejercicios de programación Introducción y entorno de tipo Test, Puzzle, Código y Proyecto con VSCode.