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.