Matplotlib: sposta l'etichetta dell'asse X verso il basso, ma non le zecche dell'asse X.


109

Sto usando Matplotlib per tracciare un istogramma. Usando i suggerimenti della mia domanda precedente: Matplotlib - etichetta ogni cestino , ho più o meno risolto i problemi.

C'è un ultimo problema - in precedenza - l'etichetta dell'asse x ("Tempo (in millisecondi)") veniva visualizzata sotto i segni di graduazione dell'asse x (0,00, 0,04, 0,08, 0,12 ecc.)

Nessun riempimento: etichetta dell'asse sotto le figure

Usando il consiglio di Joe Kingston (vedi domanda sopra), ho provato a usare:

ax.tick_params(axis='x', pad=30)

Tuttavia, questo sposta sia i segni di graduazione dell'asse x (0,00, 0,04, 0,08, 0,12 ecc.), Sia l'etichetta dell'asse x ("Tempo (in millisecondi)"):

30 Padding - Sia l'etichetta dell'asse che i segni di graduazione sono stati spostati

C'è un modo per spostare solo l'etichetta dell'asse x sotto le tre righe di cifre?

NB: potrebbe essere necessario aprire direttamente i PNG sottostanti: fare clic con il pulsante destro del mouse sull'immagine, quindi Visualizza immagine (in FF) o Apri immagine in una nuova scheda (Chrome). Il ridimensionamento dell'immagine eseguito da SO le ha rese quasi illeggibili

Risposte:


196

usa il parametro labelpad:

pl.xlabel("...", labelpad=20)

oppure impostalo dopo:

ax.xaxis.labelpad = 20

13

Se la variabile ax.xaxis._autolabelpos = True, matplotlib imposta la posizione dell'etichetta nella funzione _update_label_position in axis.py secondo (alcuni estratti):

    bboxes, bboxes2 = self._get_tick_bboxes(ticks_to_draw, renderer)
    bbox = mtransforms.Bbox.union(bboxes)
    bottom = bbox.y0
    x, y = self.label.get_position()
    self.label.set_position((x, bottom - self.labelpad * self.figure.dpi / 72.0))

È possibile impostare la posizione dell'etichetta indipendentemente dai segni di graduazione utilizzando:

    ax.xaxis.set_label_coords(x0, y0)

che imposta _autolabelpos su False o come menzionato sopra modificando il parametro labelpad.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.