Matplotlib: trasformazioni

Il pacchetto matplotlib è costruito su un framework di trasformazione per spostarsi facilmente tra i sistemi di coordinate. È possibile utilizzare quattro sistemi di coordinate. I sistemi sono descritti brevemente nella tabella sotto riportata:

Coordinata Oggetto di trasformazione Descrizione
Dati ax.transData

Il sistema di coordinate dei dati territoriali dell'utente. controllato da xlim e ylim

Assi ax.transAxes

Il sistema di coordinate degli assi. (0,0) è in basso a sinistra e (1,1) è in alto a destra degli assi.

figura fig.transFigure

Il sistema di coordinate della figura. (0,0) è in basso a sinistra e (1,1) è in alto a destra nella figura

Schermo Nessuna

Questo è il sistema di coordinate pixel del display. (0,0) è l'angolo inferiore sinistro e (larghezza, altezza) è l'angolo superiore destro del display in pixel.

In alternativa, è possibile utilizzare (matplotlib.transforms.IdentityTransform ()) invece di None.

Considera il seguente esempio:

axes.text(x,y,"my label")

Il testo viene posizionato nella posizione teorica di un punto dati (x, y). Si parlerebbe quindi di "coordinate dati".

Utilizzando altri oggetti di trasformazione, è possibile controllare il posizionamento. Ad esempio, se il test di cui sopra deve essere posizionato al centro del sistema di coordinate degli assi, eseguire la seguente riga di codice:

axes.text(0.5, 0.5, "middle of graph", transform=axes.transAxes)

Queste trasformazioni possono essere utilizzate per qualsiasi tipo di oggetti Matplotlib. La trasformazione predefinita perax.text è ax.transData e la trasformazione predefinita per fig.text è fig.transFigure.

Il sistema di coordinate degli assi è estremamente utile quando si inserisce il testo negli assi. Spesso potresti volere un fumetto di testo in una posizione fissa; ad esempio, nella parte superiore sinistra del riquadro degli assi e lasciare che la posizione rimanga fissa quando si esegue la panoramica o lo zoom.