Tutorial Matplotlib - Inserire il testo nella trama

  1. Matplotlib Assi Text
  2. Matplotlib Assi Text Esempio di base
  3. Matplotlib Assi Rotazione del Text
  4. Matplotlib Assi Text Angolo di rotazione Spiegazione dell’angolo di rotazione

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, .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.