TUTORIAL
Tutorial Matplotlib - Inserire il testo nella trama
Questo tutorial introduce il testo Matplotlib nella trama e come posizionare il testo nella trama, e come ruotare il testo in essa.
In questa pagina
Impareremo come inserire il testo nella trama in questo tutorial. Si può aggiungere del testo e dare a quel testo una posizione di coordinate oppure si può anche aggiungere del testo ad una trama specifica e magari disegnare una freccia che punta direttamente a quella trama.
Matplotlib Assi Text
matplotlib.axes.Axes.text(x, y, s, fontdict=None, withdash=False, **kwargs)
Aggiungere il testo s agli assi in posizione (x, y) nelle coordinate dei dati.
Parametri
| Nome | Tipo di dati | Descrizione |
|---|---|---|
x, y |
scalars |
La posizione per posizionare il testo |
s |
str |
Il testo dell’annotazione |
fontdict |
dict |
Un dizionario per sovrascrivere le proprietà dei caratteri di testo predefinite |
Matplotlib Assi Text Esempio di base
# -*- 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()
Matplotlib Assi Rotazione del Text
Gli assi text ha un argomento di parola chiave - rotation che specifica l’angolo di rotazione del testo nel grafico. L’angolo di rotation è compreso tra 0 e 360 (gradi).
# -*- 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 Assi Text Angolo di rotazione Spiegazione dell’angolo di rotazione
L’angolo di rotazione è in senso antiorario. Facciamo un demo script per illustrare la definizione dell’angolo di rotazione.
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()
Il testo è allineato dal suo riquadro di delimitazione che è la casella rettangolare che circonda il rettangolo del testo. Il testo viene prima ruotato e poi allineato. Fondamentalmente, il testo è centrato nella posizione (x, y), ruotato intorno a questo punto, e poi allineato secondo il rettangolo di delimitazione del testo ruotato.
Quindi, se si specifica a sinistra, l’allineamento in basso a sinistra del rettangolo di delimitazione del testo ruotato, la parte inferiore sinistra del rettangolo di delimitazione del testo ruotato sarà alla coordinata (x, y) del testo.