Tutorial de Matplotlib - Colocar Texto en la Parcela

  1. Ejes de Matplotlib Text
  2. Ejes Matplotlib Text Ejemplo básico
  3. Rotación de ejes Matplotlib Text
  4. Explicación del ángulo de rotación de los ejes Matplotlib Text

En este tutorial aprenderemos cómo colocar el texto en el gráfico. Puede agregar texto y darle una ubicación de coordenadas o también puede agregar texto a un gráfico específico y tal vez dibujar una flecha que apunte directamente a ese gráfico.

Ejes de Matplotlib Text

matplotlib.axes.Axes.text(x, y, s, fontdict=None, withdash=False, **kwargs)

Añade el texto s a los ejes en la ubicación (x, y) en coordenadas de datos.

Parámetros

Nombre Tipo de datos Descripción
x, y scalars La posición para colocar el texto
s str El texto de la anotación
fontdict dict Un diccionario para anular las propiedades de la fuente de texto por defecto

Ejes Matplotlib Text Ejemplo básico

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 4 * np.pi, 1000)  
y = 10 * np.sin(x)

fig, ax = plt.subplots(1, figsize=(6, 4.5))
ax.plot(x, y, "r")
ax.text(2.0, 9.5, "Peak Value",fontsize=14)

ax.grid(True)

plt.show()

Texto Matplotlib

Rotación de ejes Matplotlib Text

El eje text tiene un argumento de palabra clave - rotation que especifica el ángulo de rotación del texto en el gráfico. El ángulo de rotation está entre 0 y 360 (grados).

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 4 * np.pi, 1000)  
y = 10 * np.sin(x)

fig, ax = plt.subplots(1, figsize=(6, 4.5))
ax.plot(x, y, "r")
ax.text(1.3, 9.0, "Peak Value", fontsize=16, rotation = 270)

ax.grid(True)

plt.show()

Matplotlib Rotación_Texto

Explicación del ángulo de rotación de los ejes Matplotlib Text

El ángulo de rotación es en dirección contraria al sentido de las agujas del reloj. Hacemos un script de demostración para ilustrar la definición del ángulo de rotación.

import matplotlib.pyplot as plt
import numpy as np


def addtext(ax, props):
    for x in range(8):
        angle = 45 * x
        ax.text(0.5+x, 0.5, '{} degree'.format(angle), props, rotation=angle)
        ax.scatter(x + 0.5, 0.5, color='r')
        
    ax.set_yticks([0, .5, 1])
    ax.set_xlim(0, 8)
    ax.grid(True)


# the text bounding box
bbox = {'fc': '0.8', 'pad': 0}

fig, axs = plt.subplots(1, 1, figsize=(8, 3))

addtext(axs, {'ha': 'center', 'va': 'center', 'bbox': bbox})
axs.set_xticks(np.arange(0, 8.1, 0.5), [])
axs.set_ylabel('center / center')

plt.show()

Demostración del ángulo de rotación de Matplotlib Text_Rotation

El texto se alinea por su caja delimitadora que es la caja rectangular que rodea el rectángulo de texto. El texto se girará primero y luego se alineará. Básicamente, el texto se centra en la ubicación (x,y), se rota alrededor de este punto, y luego se alinea de acuerdo con el cuadro delimitador del texto rotado.

Así que si especifica la alineación izquierda, la parte inferior izquierda del cuadro delimitador del texto rotado estará en la coordenada (x,y) del texto.

comments powered by Disqus