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()

Testo Matplotlib

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 Text_Rotation

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()

Dimostrazione dell’angolo di rotazione di Matplotlib Text_Rotation

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.