matplotlib twinx () маркеры 2-й оси на той же левой оси - PullRequest
1 голос
/ 02 марта 2020

Скажем, я создаю вторичную ось Y с twinx (), похожую на эту demo

Есть ли способ разместить метки и значения вторичной оси Y на левая сторона непосредственно рядом с существующей осью y, например, ниже?

enter image description here

1 Ответ

1 голос
/ 02 марта 2020

С самыми последними версиями Matplotlib это довольно просто.

def add_twin(ax, **kwargs):
    twin = ax.twinx()
    twin.yaxis.tick_left()
    twin.tick_params(axis='y', direction='in', **kwargs)
    for tick in twin.get_yticklabels():
        tick.set_horizontalalignment('right')
    return twin


fig, ax = plt.subplots()
twin = add_twin(ax)
twin.set_yticks((0.1, 0.5, 0.9))

Горизонтальное выравнивание является ключевым, и вам, вероятно, придется настроить пэд для своих целей, используя kwargs. Но вы должны получить что-то вроде этого:

enter image description here

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