Python

Agregar etiquetas a los puntos en Matplotlib

En los gráficos de dispersión una manera de ayudar a los lectores a identificar valores especiales es incluir una etiqueta. Asignando un nombre a ese punto específico. La forma más sencilla para agregar etiquetas a los puntos en Matplotlib es mediante el uso de la función annotate(). Una función sencilla que solamente requiere la cadena de texto con el mensaje y la posición en la que se desea situar.

Agregar una etiqueta asociada a un punto en Matplotlib

El proceso para mostrar un mensaje asociado a un valor en una gráfica de dispersión creada con Matplotlib es sencillo. Tras la creación de una gráfica, pero antes de dibujarla o guardarla, se puede llamar a la función annotate() para insertar la anotación. Llamada que se puede realizar varias veces para agregar múltiples textos.

Este proceso se puede ver en el siguiente código. En el que, una vez importado Matplotlib, inicialmente se definen dos listas (x e y) con los valores que se desean dibujar. Tras lo cual se dibujan mediante la función scatter(). Una vez hecho esto se incluye un anotación mediante el uso de la función annotate(), a la que se la ha pasado como primer parámetro el texto y segundo una tupla con la posición en la que se desea dibujar el mensaje, en este caso el segundo punto de la lista. Finalmente, se agrega una etiqueta para el eje de abscisas y otra para el eje de coordenadas antes de dibujar la figura.

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [4, 3, 2, 5, 3]

plt.scatter(x, y, label="Valores")

plt.annotate("Punto 2", (2, 3))

plt.xlabel("X")
plt.ylabel("Valores")
plt.show()

Una vez ejecutado este código se obtiene la siguiente figura en la que se puede apreciar la anotación.

Gráfica de dispersión con una anotación cerca del segundo punto creada con Matplotlib

Posiblemente la etiqueta esté demasiado cerca del punto, pero esto se puede solucionar fácilmente separando ligeramente la posición en la que comienza a escribirse el texto.

Agregar múltiples etiquetas a los puntos en Matplotlib

Como se ha comentado anteriormente, es posible incluir en la gráfica tantas anotaciones como sea necesario. Esto es algo que se muestra en el siguiente código donde se emplea un bucle para agregar las anotaciones.

annotations=["Punto 1", "Punto 2", "Punto 3", "Punto 4", "Punto 5"]

plt.scatter(x, y, label="Valores")
plt.xlabel("X")
plt.ylabel("Valores")

for i, label in enumerate(annotations):
    plt.annotate(label, (x[i] + 0.1, y[i]))
    
plt.show()

Al ejecutar este programa se obtiene la siguiente figura

Gráfica de dispersión con múltiples anotaciones creada con Matplotlib

Aunque es necesario ser precavidos, demasiadas anotaciones pueden tener el efecto contrario ya que puede hacer más complicada la interpretación de la gráfica.

Conclusiones

La función annotate() de Matplotlib puede ser una gran aliada para hacer más fácil la interpretación de una gráfica. Al permitir asociar etiquetas a los puntos en Matplotlib. Reforzado de esta manera la información incluida en la gráfica.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Matplotlib

Recent Posts

Curiosidad: De dónde vienen foo, bar y foobar

Si revisáis código o documentación de otros programadores, tarde o temprano os toparéis con dos…

2 días ago

BG/NBD + Gamma/Gamma: el modelo probabilístico para CLV en compras continuas

Los dos artículos anteriores cubrieron el CLV clásico —una fórmula útil pero que trata a…

4 días ago

Errores habituales al trabajar con DataFrames grandes en Pandas (y cómo evitarlos)

Hay un momento muy concreto en la vida de casi todo análisis: el código que…

1 semana ago

Champion vs Challenger: Cómo los Bancos Validan Modelos Nuevos antes de Ponerlos en Producción

Has construido un nuevo modelo de credit scoring. Las métricas de validación son mejores que…

2 semanas ago

Cómo Comparar Dos Hipotecas con Todos los Gastos Incluidos

Comparar dos hipotecas parece sencillo: la que tenga el TIN más bajo es la mejor…

2 semanas ago

Segmentación RFM: cómo clasificar tu cartera de clientes antes de calcular el CLV

En un artículo anterior vimos la fórmula clásica del CLV junto a sus limitaciones. Una…

3 semanas ago

This website uses cookies.