Я хотел бы перемещать метки тиков по горизонтали вдоль оси х, не перемещая соответствующие тики.
Более конкретно, при вращении меток с plt.setp
, центры текста меток остаются выровненными с тиками. Я хотел бы сместить эти метки вправо, так что ближние концы меток выравниваются, как показано на изображении ниже.
Я знаю этот пост и этот, однако ответы интересные клоды, а не строгие ответы на вопрос.
мой код:
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()
Как ни странно, set_y
ведет себя так, как ожидалось, но даже если бы я установил x
в fantasillion, метки не сдвинулись бы на одну точку.
(Использование plot_date
может ввести дополнительную путаницу, но то же самое происходит с plot
.)