Vorrei spostare le etichette delle zecche orizzontalmente lungo l'asse x, senza spostare le tacche corrispondenti.Come spostare l'etichetta di una spunta in matplotlib?
In particolare, quando si ruotano le etichette con plt.setp
, i centri del testo delle etichette rimangono allineati ai segni di spunta. Vorrei spostare quelle etichette a destra, in modo che le estremità vicine delle etichette si allineano invece come suggerito sull'immagine sottostante.
Sono consapevole this post e this one, tuttavia le risposte sono kludges interessanti piuttosto che severe risposte alla domanda.
il mio codice:
import matplotlib.pyplot as plt
import numpy as np
import datetime
# my fake data
dates = np.array([datetime.datetime(2000,1,1) + datetime.timedelta(days=i) for i in range(365*5)])
data = np.sin(np.arange(365*5)/365.0*2*np.pi - 0.25*np.pi) + np.random.rand(365*5) /3
# creates fig with 2 subplots
fig = plt.figure(figsize=(10.0, 6.0))
ax = plt.subplot2grid((2,1), (0, 0))
ax2 = plt.subplot2grid((2,1), (1, 0))
## plot dates
ax2.plot_date(dates, data)
# rotates labels
plt.setp(ax2.xaxis.get_majorticklabels(), rotation=-45)
# try to shift labels to the right
ax2.xaxis.get_majorticklabels()[2].set_y(-.1)
ax2.xaxis.get_majorticklabels()[2].set_x(10**99)
plt.show()
Stranamente, set_y
si comporta come previsto, ma anche se ho impostato x
ad un fantasillion, le etichette non sarebbe spostare di una virgola. (L'uso di plot_date
possono introdurre ulteriori confusione, ma lo stesso effettivamente accade con plot
.)
io non sono in grado di replicare la tua immagine con il codice sopra ... – MattDMo
@MattDMo Ho provato a copiarlo come tale ed eseguirlo, e ottengo la trama corretta. Ha due sottotrame però. Hai qualcosa? –