Выровнять вторую ось Y с левой? - PullRequest
0 голосов
/ 12 февраля 2019

Я ввел двойную ось для построения кумулятивного графика, но 0 не начинается внизу изображения или, по крайней мере, находится на той же высоте левой оси.

Как выровнять точку 0 справа по y слева?

fig, ax = plt.subplots(1,1, figsize=(15,1.5*2.5))
ax.hist(np.arange(100), np.arange(100))
axt = ax.twinx()
axt.plot(np.arange(100), np.arange(100), ls=':', c='r')

img

Неудачно с помощью set_ylim меняет разрешение для галочки.

enter image description here

1 Ответ

0 голосов
/ 12 февраля 2019

Вы можете установить равные пределы для двух осей Y с помощью команды

axt.set_ylim(ax.get_ylim())

после , когда вы выполнили все команды построения.Точно так же, если вы хотите, чтобы только нижние значения (0) совпадали, вы можете сделать

axt.set_ylim([ax.get_ylim()[0],axt.get_ylim()[1]])

Это работает, потому что ax.get_ylim() возвращает кортеж, где первая запись является нижним пределом, а второе значениеверхний предел диапазона отображаемых осей.set_ylim() в свою очередь ожидает двухэлементную итерацию (например, список или кортеж), которую вы можете создать на лету.

РЕДАКТИРОВАТЬ :

Как указанов комментариях tmdavison можно также просто передать одно из ограничений на set_xlim(), тем самым оставив другое ограничение без изменений (подробности см. в документации ).Это делается с помощью ключевых слов bottom и top.Для примера в OP, способ установить только нижний предел сдвоенных осей на 0, соответствующая команда будет

axt.set_ylim(bottom=ax.get_ylim()[0])
...