¿Cómo agregar texto a Matplotlib?

Matplotlib es una biblioteca de gráficos en Python para visualizar datos, inspirada en MATLAB, lo que significa que los términos utilizados (Eje, Figura, Gráficos) serán similares a los utilizados en MATLAB. Pyplot es un módulo dentro de la biblioteca Matplotlib que es una interfaz similar a un shell para el módulo Matplotlib.

 Proporciona casi cualquier tipo de trama que se nos ocurra. En esta publicación, nos centraremos en un tema más específico que es agregar texto en el diagrama de matplotlib. Los siguientes comandos se utilizan para crear texto en el diagrama de matplotlib.

Comandos Descripción
texto  Esto se usa para agregar texto en una ubicación arbitraria de los ejes.
anotar Esto se usa para agregar una anotación, con una flecha opcional, en una ubicación arbitraria de los ejes.
set_xlabel Esto se usa para agregar una etiqueta al eje x de los ejes.
set_yetiqueta Esto se usa para agregar una etiqueta al eje y de los ejes.
set_title Esto se usa para agregar títulos a los Ejes.
texto Esto se usa para agregar texto en una ubicación arbitraria de la Figura.
 subtítulo Esto se utiliza para agregar título a la figura.

Veremos cada uno de los comandos uno por uno, primero, vamos a crear un gráfico básico de Día v/s Pregunta en el que agregaremos varios objetos de texto. 

Código:

Python3

# Code to add text on matplotlib
 
# Importing library
import matplotlib.pyplot as plt
 
# Creating x-value and y-value of data
x = [1, 2, 3, 4, 5]
y = [5, 8, 4, 7, 5]
 
# Creating figure
fig = plt.figure()
 
# Adding axes on the figure
ax = fig.add_subplot(111)
 
# Plotting data on the axes
ax.plot(x, y)
 
plt.show()

Producción:

El gráfico de salida parece muy simple. Ahora, veamos algunos comandos de texto para agregarlo en nuestra trama.

  • set_title() se usa para agregar el título de los ejes. El primer argumento y obligatorio es el título que le quieres dar y el resto son opcionales para formatearlo.
  • De manera similar, set_xlabel() y set_ylabel() se usan para agregar títulos al eje x y al eje y. También toma el título como argumento.

Es mejor ajustar el rango en el eje y para que podamos tener algo de espacio para agregar texto más adelante. Para esto, usaremos ax.axis() que permite especificar rangos de valores (los dos primeros para el eje x y los otros dos para el eje y).

Ahora, agreguemos su título y los nombres del eje x y el eje y.

Código:

Python3

# Adding title
ax.set_title('Day v/s No of Questions on GFG', fontsize=15)
 
# Adding axis title
ax.set_xlabel('Day', fontsize=12)
ax.set_ylabel('No of Questions', fontsize=12)
 
# Setting axis limits
ax.axis([0, 10, 0, 15])

Producción:

Ahora, se ve mejor que la versión anterior. Es el momento de agregar texto a nuestra trama. Primero, veamos acerca de ellos.

axes.text() se usa para agregar texto en una ubicación arbitraria de los ejes. Para esto, necesitamos especificar la ubicación del texto y, por supuesto, cuál es el texto. Por ejemplo, el siguiente código agregará el texto «Práctica en GFG». Se ubicará según el punto cuyas coordenadas se especifiquen ([1,13] en este caso). El parámetro bbox se usa para capturar el texto con un cuadro. Como argumento al parámetro bbox, pasamos un diccionario que incluye estilos de formato.

 Código:

Python3

# Adding text on the plot.
ax.text(1, 13, 'Practice on GFG', style='italic', bbox={
        'facecolor': 'grey', 'alpha': 0.5, 'pad': 10})

Si no queremos tener que encuadrar el texto, simplemente no asigne nada al parámetro bbox. El siguiente código agrega el texto especificado sin un cuadro.

Código:

Python3

# Adding text without box on the plot.
ax.text(8, 13, 'December', style='italic')

También podemos añadir texto con anotaciones.

axes.annotate() se usa para agregar una anotación, con una flecha opcional, en una ubicación arbitraria de los ejes. Su parámetro xy contiene las coordenadas para la flecha y el parámetro xytext especifica la ubicación del texto. El parámetro Arrowprops se utiliza para diseñar la flecha.

Por ejemplo, podemos marcar el valor máximo de los datos de la pregunta del día con una anotación.

Código:

Python3

# Adding annotation on the plot.
ax.annotate('Peak', xy=(2, 8), xytext=(4, 10), fontsize=12,
            arrowprops=dict(facecolor='green', shrink=0.05))

Pongamos todo esto junto y veamos el código final.

Código:

Python3

# Code to add text on matplotlib
 
# Importing library
import matplotlib.pyplot as plt
 
# Creating x-value and y-value of data
x = [1, 2, 3, 4, 5]
y = [5, 8, 4, 7, 5]
 
# Creating figure
fig = plt.figure()
 
# Adding axes on the figure
ax = fig.add_subplot(111)
 
# Plotting data on the axes
ax.plot(x, y)
 
# Adding title
ax.set_title('Day v/s No of Questions on GFG', fontsize=15)
 
# Adding axis title
ax.set_xlabel('Day', fontsize=12)
ax.set_ylabel('No of Questions', fontsize=12)
 
# Setting axis limits
ax.axis([0, 10, 0, 15])
 
# Adding text on the plot.
ax.text(1, 13, 'Practice on GFG', style='italic', bbox={
        'facecolor': 'green', 'alpha': 0.5, 'pad': 10})
 
# Adding text without box on the plot.
ax.text(8, 13, 'December', style='italic')
 
# Adding annotation on the plot.
ax.annotate('Peak', xy=(2, 8), xytext=(4, 10), fontsize=12,
            arrowprops=dict(facecolor='green', shrink=0.05))
 
plt.show()

Producción:

Publicación traducida automáticamente

Artículo escrito por piyushtiwari515 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *