Как убрать метки с левого позвоночника - PullRequest
0 голосов
/ 02 января 2019

В matplotlib, как мне переместить метки y в крайнюю левую часть областей графика, когда я переместил левый позвоночник?

Код:

import matplotlib.pyplot as plt

X = range(-10,5)
y = [i**2 for i in X]

fig, ax = plt.subplots(1,1, figsize=(10,8))
plt.plot(X, y)
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_position('zero')

Выходы:

enter image description here

Однако я хотел бы получить это:

enter image description here

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Изменение преобразования y-ticklabels обратно на исходное преобразование оси y даст вам желаемые отметки с левой стороны осей.

plt.setp(ax.get_yticklabels(), transform=ax.get_yaxis_transform())

enter image description here

Полный код для воспроизводимости

import matplotlib.pyplot as plt

X = range(-10,5)
y = [i**2 for i in X]

fig, ax = plt.subplots(1,1, figsize=(10,8))
plt.plot(X, y)
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_position('zero')

plt.setp(ax.get_yticklabels(), transform=ax.get_yaxis_transform())

plt.show()
0 голосов
/ 02 января 2019

Вы можете использовать атрибут set_position ваших меток тиков, перебирая их. Здесь вы должны передать значение (xy), которое будет установлено в качестве нового местоположения ваших тикл-меток. Мы знаем, что х-позиция равна -10. Я обнаружил, что не имеет значения, какую y-позицию вы указали, тики смещены на значение x, что тоже имеет смысл, поскольку метки тиков должны соответствовать тикам на оси y. Однако нельзя оставить значение y пустым. Таким образом, указание (-10) не сработает, а (-10, 0), (-10, -100) или (-10, 1000) не окажут влияния на y-позицию тиков. Причина как @ImportanceOfBeingErnest прояснено: позиция y метки будет определяться значениями y ваших данных и устанавливается во время отрисовки после применения изменений.

for tick in ax.yaxis.get_major_ticks():
    print (tick.label.set_position((-10, 0)))

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...