Учитывая матрицу (список списков)
A = [[1, 2, 3],
[4, 6, 8],
[9, 12, 15]]
и список x = [1, 2, 3]
.
Каждая строка j (0 <= j <= 2)
из A
состоит из y -значения, так что всего можно создать 3 прямые линии в комбинации с x
.
Теперь я хочу построить эти прямые линии на одном графике с помощью специальной функции.Если пользователь нажимает на графику, обработчик события должен получить x -позицию и создать еще один график прямо под первым.Этот график должен быть одномерным и отображать только данные столбца в A
, индекс которого определяется положением x .
Пример: щелчок по x = 1 должен построить [1 4 9]
, x = 2 должен построить [2 6 12]
и т. Д.
Я уже пытался добавить подплот, используя figure1.add_subplot(211)
для первых графиков и figure1.add_subplot(212)
в обработчике событий, и он также не работал.
A = [[1 2 3], [4 5 6], [7 8 9]]
x = [1 2 3]
figure1 = plt.figure()
plt.plot(x, A[0])
plt.plot(x, A[1])
plt.plot(x, A[2])
def onclick(event):
Y = [A[i][int(event.xdata)] for i in range(0, 3)]
plt.plot(Y)
figure1.canvas.mpl_connect('button_press_event', onclick)