Python

Uso de LaTeX en Matplotlib

Cuando es necesario incluir ecuaciones u otros símbolos matemáticos en los cuadernos de Jupyter lo habitual es usar las expresiones de LaTeX. Algo que también se puede usar en las figuras de Matplotlib. Aunque su uso es algo más complicado. A diferencia de Jupyter, para poder usar LaTeX en Matplotlib es necesario tener instalado previamente una distribución de este sistema de composición de textos para generar los mensajes.

Instalación de una distribución de LaTeX

En el caso de que deseemos incluir anotaciones con LaTeX dentro de una figura de Matplotlib es necesario tener instalado el sistema en nuestro equipo. En el caso de Windows una de las más populares y fáciles de instalar es MiKTeX. Mientras que para los usuarios de macOS una de las distribuciones más sencillas de instalar es MacTeX. En ambos casos solamente se tiene que bajar el instalador y seguir los pasos del asistente.

Los usuarios de Linux lo tienen más fácil ya que LaTeX es una herramienta que se pueden encontrar dentro de la mayoría de las distribuciones.

Incluir anotaciones con LaTeX en Matplotlib

En un sistema en el que se encuentre LaTeX instalado solamente hay que realizar una pequeña configuración para que Matplotlib lo utilice. Se tiene que fijar la propiedad de text.usetex del objeto matplotlib.RcParams a verdadero. Con esto, todas las cadenas de texto de las anotaciones, etiquetas y títulos se evaluarán con LaTeX, pudiéndose incluir en las mismas tanto ecuaciones como otros símbolos.

Por ejemplo, en el siguiente ejemplo se muestra una señal y se usa LaTeX para generar las etiquetas de ambos ejes como para incluir una ecuación en el título.

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['text.usetex'] = True

x = np.linspace(0, np.pi, 100)
y = np.cos(3 * np.pi * x / 2)

plt.plot(x, y)
plt.xlabel(r'\textbf{Tiempo (ms)}')
plt.ylabel(r'\textbf{Amplitud $(\mu V)$}')
plt.title(r'Señal $\sin \left(\frac{3 \pi}{2} x \right)$', fontsize=18)
plt.show()

Obteniendo como resultado la siguiente figura.

Figura creada con Matplotlib en la que se usa LaTeX

Opciones para los textos

No solamente se puede activar el uso de LaTeX en Matplotlib mediante el objeto matplotlib.RcParams, también es posible fijar otras opciones como la fuente. Así para cambiar la fuente a Palatino se puede usar la siguiente opción

plt.rcParams.update({
    "text.usetex": True,
    "font.family": "serif",
    "font.serif": ["Palatino"],
})

Con lo que la figura del ejemplo anterior quedaría de la siguiente manera.

Figura creada con Matplotlib en la que se usa LaTeX en la que se usa la fuente Palatino

Pudiéndose notar fácilmente el cambio de fuente que existe entre las dos figuras.

Conclusiones

En esta entrada se ha visto una opción de personalización para las figuras de Matplotlib con la que es posible incluir ecuaciones y otros símbolos en nuestras figuras.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Matplotlib

Recent Posts

Migrar tslane a un paquete dual CommonJS y ESM con tsup y Vitest

tslane es la plantilla que uso como punto de partida para mis librerías TypeScript, nacida…

3 días ago

Cómo construir tu primer scorecard paso a paso

En los artículos anteriores de esta serie vimos la teoría detrás del credit scoring: qué…

5 días ago

Actualizar expresslanets a ES Modules con tsx y Vitest

expresslanets es la plantilla de API REST con Express y TypeScript que empezó como una…

1 semana ago

Pareto/NBD: cuando el abandono silencioso cambia el CLV

En el artículo del Dashboard vimos que Pareto/NBD aparecía junto a BG/NBD con un ajuste…

2 semanas ago

Por qué migrar tus proyectos TypeScript a ES Modules en 2026

Durante años, CommonJS (require/module.exports) ha sido la forma por defecto de organizar módulos en Node.js,…

2 semanas ago

Método del codo: interpretación correcta y limitaciones

Cuando usas k-means tienes que decidir algo incómodo de entrada: cuántos grupos, , vas a…

3 semanas ago

This website uses cookies.