Saltar al contenido principal
Matplotlib
Librería Ciencia de Datos

Formación corporativa en Matplotlib

Visualización en Python para informes, dashboards y reporting analítico.

Evidencias FUNDAE Activación guiada Evaluación con IA Itinerario a medida

¿Prefieres verlo en directo? Agenda una demo sin compromiso.

Resumen del itinerario en Matplotlib

Para qué equipos

Equipos técnicos que incorporan Matplotlib a su stack productivo o consolidan competencias antes de un proyecto crítico. Adaptamos el temario al nivel de partida y al stack acompañante.

Qué se trabaja

Lecciones aplicadas y ejercicios prácticos en Matplotlib resueltos en el IDE del navegador, con corrección automática por IA y proyectos integradores revisados con rúbrica explícita.

Cómo se contrata

Propuesta concreta sobre teleformación, aula virtual o plan mixto. Sin coste de setup, sin permanencia, con evidencias FUNDAE exportables para la entidad organizadora.

Activación en 3 pasos

Diseñamos el itinerario, el alcance y el calendario según el nivel y el stack de tu equipo. Evidencias FUNDAE exportables, sin permanencia ni coste de setup.

  1. 1 Demo o llamada
    30 min con el fundador. Cuéntanos el stack, el nivel y el calendario.
  2. 2 Propuesta
    Itinerario y modalidad (teleformación, aula virtual o mixto) con evidencias FUNDAE exportables.
  3. 3 Tenant activo
    Tu equipo entra con SSO, asignaciones automáticas y panel admin completo.

¿Prefieres verlo en directo? Agenda una demo sin compromiso.

Qué incluye la formación

Toda la plataforma CertiDevs disponible para tu equipo durante el itinerario. Sin costes ocultos ni módulos premium.

Entornos de programación online, sin instalar nada en el equipo del alumno.
Evaluación con IA de cada ejercicio de código, proyecto y ensayo, con feedback y nota.
Certificado verificable con NIF del alumno y firma digital de CertiDevs.
Panel admin de empresa: alta masiva CSV, asignaciones, foros y encuestas.
Rol inspector FUNDAE con acceso de solo lectura a actividad y resultados.
Reportes exportables en Excel: accesos, progreso, completion y satisfacción.
Integración con tu LMS: LTI 1.1 + 1.3 Deep Linking y exportación SCORM 1.2.
SSO con tu Active Directory (OIDC, Microsoft Entra, Google Workspace).
White-label opcional: subdominio propio, logo y tema de tu marca.
Pruebas técnicas: mismos exámenes para evaluar candidatos en selección.
Foros y mensajería tutorial integrados, requisito FUNDAE cubierto de serie.
Soporte directo de nuestro equipo durante toda la formación.

Cursos disponibles en Matplotlib

Cada curso se puede asignar de forma independiente o combinar en un plan formativo.

Curso completo Matplotlib

Curso completo de Matplotlib para crear visualizaciones profesionales en Python, ya sean informes, dashboards, publicaciones científicas o figuras embebidas en productos de datos. Cubres la arquitectura de figura y ejes, gráficos básicos y avanzados, personalización fina, layouts complejos con subplots, estilos y animaciones, e integración con NumPy, pandas y Seaborn. Al terminar entregas figuras reproducibles y de calidad publicable desde notebooks o pipelines automatizados.

Ver curso
Especialización Matplotlib: estilos, animación e integración en producción

Curso para cerrar el ciclo de visualización con Matplotlib desde el notebook hasta el artefacto que recibe negocio o cliente final. Trabajas estilos globales y temas de marca, mapas de color, animaciones exportables, widgets ligeros, integración con NumPy, pandas y Seaborn, publicación en Jupyter o Streamlit y exportación a formatos vectoriales y raster. Al terminar entregas figuras reproducibles, alineadas con la identidad visual de la organización y aptas para impresión o web.

Ver curso
Especialización Matplotlib: fundamentos y gráficos básicos

Curso de entrada a Matplotlib pensado para perfiles que deben pasar de tablas a figuras claras en informes y notebooks. Trabajas el rol de la biblioteca dentro del ecosistema científico, la arquitectura de figura y ejes, los primeros gráficos con la interfaz pyplot, los backends según el canal de salida y los tipos de gráfico esenciales: líneas, dispersión, barras, histogramas, sectores y áreas. Al terminar eliges con criterio el gráfico adecuado al mensaje y produces figuras reproducibles.

Ver curso
Especialización Matplotlib: layouts complejos y gráficos avanzados

Curso para analistas y científicos de datos que necesitan ir más allá del gráfico simple y montar dashboards densos o figuras técnicas para informes y papers. Trabajas layouts complejos con rejillas, subfiguras y ejes inset, visualización tridimensional, mapas de calor y contornos, gráficos polares y representaciones estadísticas como caja, violín y barras de error. Al terminar compones paneles legibles bajo densidad alta y eliges la representación adecuada para cada tipo de dato.

Ver curso
Especialización Matplotlib: personalización, ejes y subplots

Curso para llevar tus gráficos en Matplotlib de un estilo por defecto a figuras presentables en informe ejecutivo o documentación técnica. Trabajas títulos, etiquetas y leyendas, paletas y estilos de línea, control fino de ejes y escalas, anotaciones y rejillas, tamaño y resolución de figura, hojas de estilo integradas y composición de subplots. Al terminar dominas la jerarquía visual y entregas paneles consistentes que otros equipos pueden retocar sin redibujar desde cero.

Ver curso

Ver todos los cursos del catálogo

Stacks habituales que las empresas combinan en sus planes formativos junto a Matplotlib.

Estructura del itinerario

Módulos, lecciones y ejercicios del itinerario

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()
  • Introducción e instalación de Matplotlib Lección
  • Conceptos básicos de Matplotlib Lección
  • Primer gráfico con pyplot Lección
  • Backends e integración con entornos Lección
  • Test: Introducción e instalación de Matplotlib Ejercicio

Modalidades de contratación

Elige la modalidad que mejor se adapte a tu organización. Sin permanencia ni coste de setup.

Teleformación

Acceso autónomo al itinerario en la plataforma: lecciones, vídeos, ejercicios evaluados por IA y proyecto integrador. Con tutorización y foro técnico.

Solicitar propuesta

Aula virtual privada

Sesiones en directo sobre cohorte cerrada del cliente. Práctica guiada, resolución de dudas, evaluación al cierre y evidencias exportables.

Solicitar propuesta

Plan mixto

Teleformación con sesiones en directo intercaladas. Equilibra autonomía del alumno con hitos guiados, revisión de proyectos y feedback síncrono.

Solicitar propuesta

Sobre Matplotlib

NumFOCUS Desde 2003 Documentación oficial

Matplotlib es la biblioteca de referencia del ecosistema científico de Python para crear gráficos estáticos, animados e interactivos. Está escrita en Python puro con extensiones en C, depende de NumPy para datos numéricos y se integra nativamente con Pandas, SciPy, scikit-learn y Jupyter Lab. La versión 3.9 introdujo mejoras importantes en tipado con TypedDict, 3D acelerado y nuevos estilos por defecto compatibles con Python 3.12.

¿Qué es Matplotlib?

Matplotlib proporciona dos interfaces complementarias: pyplot, una máquina de estados inspirada en MATLAB que lleva el estado global de la figura activa, y una API orientada a objetos que manipula directamente Figure, Axes y Artist. La segunda es la recomendada para contenido reutilizable y para cualquier aplicación que genere figuras en paralelo.

Jerarquía Figure, Axes y Artist

Todo gráfico en Matplotlib se descompone en tres niveles. Este diagrama resume cómo encajan los contenedores principales y qué artistas vive en cada uno.

graph TD
  Figure["Figure (contenedor raíz)"]
  Figure --> SupTitle["suptitle"]
  Figure --> Axes1["Axes 1 (plot cartesiano)"]
  Figure --> Axes2["Axes 2 (proyección 3D)"]
  Figure --> Axes3["Axes 3 (proyección polar)"]
  Figure --> Colorbar["Colorbar (Axes secundario)"]
  Axes1 --> XAxis["XAxis"]
  Axes1 --> YAxis["YAxis"]
  Axes1 --> Line2D["Line2D"]
  Axes1 --> PathCollection["PathCollection (scatter)"]
  Axes1 --> Text["Text (título, etiquetas, anotaciones)"]
  Axes1 --> Legend["Legend"]
  XAxis --> Tick["Tick, Locator, Formatter"]
  YAxis --> Tick
  • Figure es el lienzo completo y gestiona el canvas del backend.
  • Axes es la región donde se dibujan los datos. Una figura puede tener muchos Axes con proyecciones distintas (cartesiana, polar, 3D).
  • Artist es todo elemento dibujable: Line2D, PathCollection, Text, Patch, Image, etc.

Instalación de Matplotlib

Para instalar Matplotlib se utiliza pip o conda:

pip install matplotlib
conda install -c conda-forge matplotlib

Matplotlib 3.9 o superior requiere Python 3.10 como mínimo y NumPy 1.23 o superior. En entornos científicos conviene instalar también ipympl para el backend interactivo en Jupyter Lab y pillow para exportación de imágenes.

pyplot frente a API orientada a objetos

Las dos interfaces no son excluyentes, pero responden a patrones distintos. Este diagrama ilustra el flujo de datos y estado en cada una.

flowchart LR
  subgraph Pyplot["pyplot (state-machine)"]
    P1["plt.plot(x, y)"]
    P2["plt.xlabel(...)"]
    P3["plt.title(...)"]
    P4["plt.show()"]
    P1 --> P2 --> P3 --> P4
    P1 -.-> CurrentAxes["gca() (Axes activo)"]
    P2 -.-> CurrentAxes
    P3 -.-> CurrentAxes
  end
  subgraph OO["API orientada a objetos"]
    O1["fig, ax = plt.subplots()"]
    O2["ax.plot(x, y)"]
    O3["ax.set_xlabel(...)"]
    O4["ax.set_title(...)"]
    O5["fig.savefig(...)"]
    O1 --> O2 --> O3 --> O4 --> O5
  end

La API orientada a objetos gana en claridad cuando hay varios Axes, cuando la figura se devuelve como resultado de una función o cuando el código se ejecuta fuera de un notebook (tests, pipelines, servicios web).

import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(8, 5))
ax.plot([1, 2, 3, 4, 5], [10, 15, 13, 17, 20],
        color="steelblue", linewidth=2, marker="o", label="serie A")
ax.set_xlabel("Tiempo")
ax.set_ylabel("Valor")
ax.set_title("Gráfico de líneas con API OO")
ax.legend()
fig.savefig("grafico.png", dpi=200, bbox_inches="tight")

Backends y entornos

El backend decide cómo se renderiza la figura: ventana nativa, archivo de imagen, SVG, PDF o figura embebida en el navegador. Este diagrama resume los backends más habituales y cuándo conviene cada uno.

graph LR
  Matplotlib[Matplotlib core]
  Matplotlib --> NoGUI{"¿Necesita ventana interactiva?"}
  NoGUI -- "No, solo exportar" --> NonInteractive["Backends no interactivos"]
  NoGUI -- "Sí, escritorio" --> InteractiveDesktop["Backends GUI"]
  NoGUI -- "Sí, navegador" --> InteractiveWeb["Backends web"]
  NonInteractive --> Agg["Agg (PNG)"]
  NonInteractive --> PDF["PDF (vectorial)"]
  NonInteractive --> SVG["SVG (vectorial)"]
  NonInteractive --> PS["PostScript / EPS"]
  InteractiveDesktop --> TkAgg["TkAgg (por defecto Windows)"]
  InteractiveDesktop --> QtAgg["QtAgg (Qt5 / Qt6)"]
  InteractiveDesktop --> MacOSX["macosx"]
  InteractiveWeb --> InlineJupyter["inline (Jupyter Classic)"]
  InteractiveWeb --> Ipympl["ipympl (Jupyter Lab)"]
  InteractiveWeb --> WebAgg["WebAgg (servidor local)"]

En pipelines de producción y servidores sin pantalla se fija matplotlib.use("Agg") antes de importar pyplot. En Jupyter Lab se activa la interacción con %matplotlib widget usando ipympl.

Gráficos básicos

Gráfico de líneas

Un gráfico de líneas muestra tendencias a lo largo de un eje continuo, habitualmente el tiempo.

fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4, 5], [10, 15, 13, 17, 20],
        color="steelblue", linewidth=2, marker="o")
ax.set_xlabel("Tiempo")
ax.set_ylabel("Valor")
ax.set_title("Gráfico de líneas")

Gráfico de dispersión

Visualiza la relación entre dos variables numéricas y permite mapear una tercera a color o tamaño.

import numpy as np

rng = np.random.default_rng(42)
x = rng.standard_normal(200)
y = x + rng.standard_normal(200) * 0.5

fig, ax = plt.subplots()
sc = ax.scatter(x, y, c=y, cmap="viridis", alpha=0.7, edgecolors="white")
fig.colorbar(sc, ax=ax, label="Valor Y")
ax.set_xlabel("Variable X")
ax.set_ylabel("Variable Y")

Gráfico de barras

Compara cantidades entre categorías discretas.

categorias = ["A", "B", "C", "D"]
valores = [4, 7, 1, 8]

fig, ax = plt.subplots()
ax.bar(categorias, valores,
       color=["#3498db", "#e74c3c", "#2ecc71", "#f39c12"])
ax.set_ylabel("Valores")

Personalización

ax.set_title("Título del gráfico", fontsize=16, fontweight="bold")
ax.set_xlabel("Etiqueta del eje X", fontsize=12)
ax.set_ylabel("Etiqueta del eje Y", fontsize=12)
ax.legend(loc="upper right", frameon=True)

Hojas de estilo

Matplotlib ofrece hojas de estilo listas para usar y es posible crear archivos .mplstyle propios.

plt.style.use("seaborn-v0_8")
plt.style.use(["dark_background", "./corporate.mplstyle"])

Anotaciones

Las anotaciones dirigen la atención del lector hacia puntos concretos.

ax.annotate("Punto importante", xy=(2, 15), xytext=(3, 20),
            arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=0.2"),
            fontsize=12)

Colormaps perceptualmente uniformes

Matplotlib incluye familias de colormaps separadas por uso: secuenciales (viridis, cividis, inferno, magma, plasma), divergentes (RdBu_r, coolwarm, seismic), cualitativos (tab10, Set2) y cíclicos (twilight). La familia recomendada para datos científicos es viridis (y cividis en contextos accesibles para daltonismo) porque preserva la luminosidad al imprimir en escala de grises.

Subplots y layouts

fig, axs = plt.subplots(2, 2, figsize=(10, 8), layout="constrained")
axs[0, 0].plot(x, y)
axs[0, 0].set_title("Líneas")
axs[0, 1].bar(categorias, valores)
axs[0, 1].set_title("Barras")
axs[1, 0].scatter(x, y)
axs[1, 0].set_title("Dispersión")
axs[1, 1].hist(rng.standard_normal(1000), bins=30)
axs[1, 1].set_title("Histograma")

Gráficos 3D

from mpl_toolkits.mplot3d import Axes3D  # habilita projection="3d"

fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, projection="3d")
x = np.linspace(-5, 5, 50)
y = np.linspace(-5, 5, 50)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X ** 2 + Y ** 2))
ax.plot_surface(X, Y, Z, cmap="viridis")
ax.view_init(elev=30, azim=45)

Guardar figuras en varios formatos

Para publicaciones científicas o informes conviene exportar en vectorial (SVG o PDF) y en PNG a 300 dpi para previsualización.

fig.savefig("grafico.png", dpi=300, bbox_inches="tight")
fig.savefig("grafico.pdf", bbox_inches="tight")
fig.savefig("grafico.svg", bbox_inches="tight")

Animaciones con FuncAnimation

El módulo matplotlib.animation permite generar animaciones programáticas y exportarlas a GIF, MP4 o HTML5. Este diagrama resume el ciclo de FuncAnimation.

sequenceDiagram
  participant Dev as Código
  participant Fig as Figure
  participant Anim as FuncAnimation
  participant Writer as FFmpeg / Pillow
  Dev->>Fig: fig, ax = plt.subplots()
  Dev->>Fig: artista = ax.plot([], [])
  Dev->>Anim: FuncAnimation(fig, update, frames, init_func, interval, blit)
  loop Cada frame i
    Anim->>Dev: update(i)
    Dev-->>Anim: devuelve artistas modificados
    Anim->>Fig: redibuja (blit si aplica)
  end
  Dev->>Anim: anim.save("salida.mp4", writer="ffmpeg")
  Anim->>Writer: serializa frames
  Writer-->>Dev: archivo de vídeo
from matplotlib.animation import FuncAnimation

fig, ax = plt.subplots()
line, = ax.plot([], [])

def init():
    ax.set_xlim(0, 2 * np.pi)
    ax.set_ylim(-1.1, 1.1)
    return line,

def update(frame):
    x = np.linspace(0, 2 * np.pi, 200)
    line.set_data(x, np.sin(x + frame / 10))
    return line,

anim = FuncAnimation(fig, update, frames=100, init_func=init,
                     interval=50, blit=True)

Integración con Pandas, Seaborn y Jupyter Lab

Matplotlib es la base sobre la que se apoyan Pandas (con el método DataFrame.plot), Seaborn (con gráficos estadísticos de alto nivel) y Jupyter Lab (con backend inline e ipympl). Este diagrama muestra las dependencias y los puntos de extensión.

graph TD
  NumPy[NumPy] --> MatplotlibCore[Matplotlib core]
  MatplotlibCore --> Pyplot[pyplot]
  MatplotlibCore --> Animation[animation]
  MatplotlibCore --> Toolkits[mpl_toolkits (3D, axes_grid1)]
  MatplotlibCore --> Pandas[Pandas DataFrame.plot]
  MatplotlibCore --> Seaborn[Seaborn]
  MatplotlibCore --> Mplfinance[mplfinance (finanzas)]
  MatplotlibCore --> Plotly[Plotly (interop parcial)]
  MatplotlibCore --> Streamlit[Streamlit st.pyplot]
  MatplotlibCore --> JupyterLab[Jupyter Lab + ipympl]
  Seaborn --> PandasData[DataFrames limpios]
  Pandas --> PandasData
import pandas as pd

df = pd.DataFrame({
    "Año": [2020, 2021, 2022, 2023, 2024],
    "Ventas": [250, 300, 400, 350, 420],
})

ax = df.plot(x="Año", y="Ventas", kind="bar", figsize=(8, 5), legend=False)
ax.set_ylabel("Ventas")

Buenas prácticas

  • Preferir la API orientada a objetos en cualquier contenido que sobreviva a una sesión interactiva.
  • Usar layout="constrained" al crear la figura para evitar solapes, alternativa moderna a tight_layout.
  • Elegir colormaps perceptualmente uniformes (viridis, cividis) y evitar jet.
  • Exportar en formato vectorial (SVG o PDF) para publicaciones y en PNG a 300 dpi para informes.
  • Fijar matplotlib.rcParams al inicio del notebook o del módulo para unificar estilo en todo el proyecto.

Recursos adicionales

¿Necesitas un itinerario completo?

Este curso puede formar parte de una carrera profesional que combine varias tecnologías. Explora nuestros itinerarios o te diseñamos uno a medida para tu equipo.

Plan formativo de Matplotlib para tu equipo

Recibe una propuesta concreta: modalidad, alcance, calendario y evidencias FUNDAE exportables. Damos de alta a tu equipo, configuramos la plataforma con tus dominios y entregamos certificados verificables e informes para tu entidad organizadora. Sin coste de setup, sin permanencia.

¿Prefieres verlo en directo? Agenda una demo sin compromiso.

Formación en Matplotlib: preguntas frecuentes

¿La formación en Matplotlib para empresas es bonificable por FUNDAE?
Puede ser bonificable cuando la acción cumple los requisitos aplicables. La plataforma aporta evidencias técnicas: seguimiento de tiempos, registro de conexiones, foros, encuestas y certificados para que tu entidad organizadora o gestoría revise la documentación.
¿En qué modalidades se imparte la formación en Matplotlib?
En tres modalidades: teleformación (online asíncrona), aula virtual privada en directo y mixta. Adaptamos temario, calendario y modalidad al equipo.
¿Se adapta el temario de Matplotlib al nivel de mi equipo?
Sí. Ajustamos el itinerario de Matplotlib al nivel y al stack de tu equipo, con ejercicios evaluados por IA y certificado verificable. La activación corporativa se acuerda durante la fase de propuesta.
¿Cómo se evalúa a los alumnos?
Con ejercicios corregidos automáticamente por IA (test, puzle, código, proyecto y ensayo), detección de entregas generadas con IA y certificados verificables por URL.