Я пытаюсь центрировать метку y по горизонтали на моем графике. Я хочу, чтобы метки отображались так же, как обычно, за исключением того, что они располагались по центру, а не по краям графика.
import matplotlib
import matplotlib.pyplot as plt
y = np.arange(0, 11, 1)
x = np.arange(0, 11, 1)
fig, ax = plt.subplots(figsize=(10,50))
ax.xaxis.tick_top()
offset = matplotlib.transforms.ScaledTranslation(0.5, 0, fig.transFigure)
for label in ax.yaxis.get_majorticklabels():
label.set_transform(label.get_transform() + offset)
plt.margins(y=0.005)
plt.yticks(np.arange(0, len(y)+1, 1))
plt.plot(y, x, lw=2)
plt.show()
(Если вы заметили, что у меня поменяли местами массивы x и y, это потому, что я тоже пытаюсь повернуть свой график).
Я получил что-то близкое к тому, что я хотел бы, хотя я не уверен, что это на самом деле центрировано, плюс, кажется, это немного опускает ярлыки, а я не хочу. Я не уверен, почему это происходит, потому что я устанавливаю только значение x в моем смещении.
Как я могу центрировать этикетки, не двигаясь вниз?