Python

Inclusión de texto en Matplotlib

En las figuras de Matplotlib es posible incluir texto en cualquier posición. Una característica que puede ser de gran utilidad cuando es necesario incluir comentarios relacionados con algunos valores. La función para crear anotaciones de texto en Matplotlib es plt.text() y su uso es tremendamente sencillo.

La función plt.text()

En Matplotlib, la forma de la función plt.text() es la siguiente:

plt.text(x, y, s, **kwargs)

Una función que tiene tres parámetros obligatorios:

  • x: posición en el eje x de donde se situará el texto,
  • y: posición en el eje y de donde se situará el texto,
  • s: cadena de texto que se desea incluir en la figura.

Además de estos también se pueden pasar otros parámetros como el tamaño de la fuente a usar o el color entre otros.

Por defecto, las coordenadas x e y indican donde comienza a escribirse la cadena de texto indicada, por lo que este debe ser el punto donde se hace la anotación.

Ejemplo de uso de plt.text()

Uno de los usos más básicos de plt.text() sería para crear una figura en la que se agrega un texto en el centro. Algo que se puede hacer con el siguiente código.

import matplotlib.pyplot as plt

plt.text(0.25, 0.55, 'Texto en Matplotlib',
         fontsize=18,
         color='blue')
plt.show()

Lo que genera como resultado la siguiente figura.

Ejemplo de texto en una figura de Matplotlib

En este caso se ha situado el texto en las coordenadas (0,25, 0,55) e indicado el uso de una fuente de 18 puntos en azul. Algo necesario para que se pueda ver mejor el mensaje dentro de la figura. Nótese que, como se ha indicado con antelación, el texto comienza en las coordenadas indicadas y ocupa todo el espacio necesario, siendo esto algo que se tendrá que tener en cuenta cuando se desee incluir cadenas largas.

Inclusión del texto en una caja

Los textos también se pueden escribir dentro de una caja. Algo que se puede conseguir pasándole un diccionario con las características de la caja a la propiedad bbox. Por ejemplo, mediante el siguiente ejemplo se puede crear una caja con el color de fondo en rojo, con un espaciado de 10 pixeles y canal alpha de 0,025.

plt.text(0.25, 0.55, 'Texto en Matplotlib',
         fontsize=18,
         color='blue',
         bbox={'facecolor':'red', 'pad':10, 'alpha':0.25})
plt.show()

Lo que genera como resultado la siguiente figura.

Texto en una caja dentro de un gráfico de Matplotlib

Asignar las anotaciones a un valor

A la hora de crear las anotaciones se puede emplear las funciones con las que se crean las figuras para asignar una anotación a un punto en concreto. Por ejemplo, en el siguiente trozo de código se insertan una anotación en 0,3 y otra en 1,4 a la altura donde se produce el valor.

import numpy as np

x = np.linspace(0, np.pi, 100)
y = np.cos(np.pi * x)
plt.plot(x, y)
plt.text(0.3, np.cos(np.pi * 0.3), 'cos(0.3 pi)', fontsize=18, color='green')
plt.text(1.4, np.cos(np.pi * 1.4), 'cos(1.4 pi)', fontsize=18, color='green')
plt.show()

Obteniendo como resultado la siguiente figura.

Anotaciones de texto en una figura de Matplotlib

Uso de LaTeX en las anotaciones

Además de esto, tal como se ha explicado en una entrada anterior, también se puede usar LaTeX para mejorar el formato de las anotaciones. Algo que solamente requiere cambiar un parámetro.

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

x = np.linspace(0, np.pi, 100)
y = np.cos(np.pi * x)
plt.plot(x, y)
plt.text(0.3, np.cos(np.pi * 0.3), r'$\cos(0.3 \pi)$', fontsize=18, color='green')
plt.text(1.4, np.cos(np.pi * 1.4), r'$\cos(1.4 \pi)$', fontsize=18, color='red')
plt.show()

Así el resultado del ejemplo queda de la siguiente manera.

Anotaciones con LaTeX en una figura de Matplotlib

Conclusiones

Hoy se ha visto cómo se puede usar plt.text() para agregar anotaciones de texto en Matplotlib. Siendo posible de esta manera incluir comentarios cuando éstos puedan ser necesarios para comprender mejor el contenido de las figuras.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Matplotlib

Recent Posts

Analytics Lane lanza ScoreFlow, un SaaS para construir y desplegar scorecards de crédito

En Analytics Lane seguimos evolucionando nuestras herramientas y damos un paso más con el lanzamiento…

2 días ago

DBSCAN y la selección de ε: teoría, intuición y aplicación práctica

Cuando hablamos de clustering, lo primero que viene a la mente suele ser k-means. Pero…

3 días ago

El bestiario de los indicadores económicos absurdos: El zoo patrio

Cualquier país desarrollado tiene sus propios indicadores folclóricos. España, por motivos que tienen mucho que…

1 semana ago

Por qué el banco te ofrece un 3% TAE y no es lo que parece

Entras a la web de tu banco. En la página principal, un banner llamativo: “Depósito…

1 semana ago

Analytics Lane lanza la versión 1.3 del laboratorio con nuevas herramientas de evaluación de modelos y utilidades prácticas

Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.3, disponible…

2 semanas ago

This website uses cookies.