Событие выбора Matplotlib на вторичной оси Y - PullRequest
0 голосов
/ 08 апреля 2019

Я хочу включить событие выбора (нажатие на точку и ее координаты напечатаны), но на графике со вторичной осью Y.

Например, оно взято из двойника пример .Событие выбора как-то разрешено только на второй оси (синусоида):

import numpy as np
import matplotlib.pyplot as plt

fig, ax1 = plt.subplots()
t = np.arange(0.01, 10.0, 0.01)
s1 = np.exp(t)
ax1.plot(t, s1, 'b.',picker=5)
ax1.set_xlabel('time (s)')
# Make the y-axis label, ticks and tick labels match the line color.
ax1.set_ylabel('exp', color='b')
ax1.tick_params('y', colors='b')

ax2 = ax1.twinx()
s2 = np.sin(2 * np.pi * t)
ax2.plot(t, s2, 'r.',picker=5)
ax2.set_ylabel('sin', color='r')
ax2.tick_params('y', colors='r')


def onpick1(event):
    thisline = event.artist
    xdata = thisline.get_xdata()
    ydata = thisline.get_ydata()
    ind = event.ind
    print('Point: ', zip(np.take(xdata, ind), np.take(ydata, ind)))
fig.canvas.mpl_connect('pick_event', onpick1)
fig.tight_layout()
plt.show()

1 Ответ

0 голосов
/ 08 апреля 2019

Это стандартное поведение twinx.Из документации :

Для тех, кто «выбирает» художников при использовании twinx, события выбора требуются только для художников на самых верхних осях.

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