Ich möchte die Markierungen einiger Ticks horizontal entlang der X-Achse bewegen, ohne die entsprechenden Ticks zu bewegen.Wie verschiebe ich ein Tick-Label in Matplotlib?
Genauer gesagt, wenn Etiketten mit plt.setp
rotieren, bleiben die Mitten der Beschriftungen mit den Ticks ausgerichtet. Ich möchte diese Beschriftungen nach rechts verschieben, sodass die nahen Enden der Beschriftungen wie im Bild unten gezeigt ausgerichtet werden.
Ich bin mir dessen bewusst this post und this one, aber die Antworten sind interessant kludges eher als strenge Antworten auf die Frage.
mein Code:
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()
Merkwürdigerweise set_y
verhält sich wie erwartet, aber selbst wenn ich x
auf eine fantasillion gesetzt, würde die Etiketten nicht durch ein Jota bewegen. (Die Verwendung von plot_date
kann zusätzliche Verwirrung vorstellen, aber das gleiche passiert eigentlich mit plot
.)
ich nicht in der Lage bin zu replizieren Ihr Bild mit dem obigen Code ... – MattDMo
@MattDMo Ich habe versucht, es so zu kopieren und es auszuführen, und ich bekomme die richtige Handlung. Es hat jedoch zwei Unterplots. Hast du überhaupt etwas? –