Tutorial de Matplotlib - Colocar Texto en la Parcela

Jinku Hu 30 enero 2023 18 enero 2020
  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
Tutorial de Matplotlib - Colocar Texto en la Parcela

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.

Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn