Tutorial de Matplotlib - Colocar Texto en la Parcela
-
Ejes de Matplotlib
Text
-
Ejes Matplotlib
Text
Ejemplo básico -
Rotación de ejes Matplotlib
Text
-
Explicación del ángulo de rotación de los ejes Matplotlib
Text
![Tutorial de Matplotlib - Colocar Texto en la Parcela](/img/Matplotlib/feature-image---Place-Text.webp)
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()
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()
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, 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()
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.
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 Facebook