В Matplotlib: я хочу нажать на определенную часть графика и сохранить эти координаты в пустой массив - PullRequest
0 голосов
/ 07 июня 2018

Я использую matplotlib и собрал большую часть кода из предыдущих вопросов в сообществе стеков.

Ссылка здесь: Сохранение координат события щелчка мыши с помощью matplotlib

import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import trapz

def find_nearest(array,value):
    idx = (np.abs(array-value)).argmin()
    return array[idx]

def onclick(event):
    global ix,iy
    ix,iy = event.xdata, event.ydata
    #print 'x = %d, y = %d'%(ix,iy)

    global coords
    coords.append((ix,iy))

#disconnect after 2 clicks
if len(coords) ==2:
    fig.canvas.mpl_disconnect(cid)
    plt.close(1)
return

x = np.arange(-10,10)
y = x**2

fig = plt.figure(2)
ax = fig.add_subplot(111)
ax.plot(x,y)

coords = []

cid = fig.canvas.mpl_connect('button_press_event', onclick)

plt.show()

#integration limits

ch1 = np.where(x == (find_nearest(x,coords[0][0])))
ch2 = np.where(x == (find_nearest(x, coords[1][0])))

#calculate integral
y_int = trapz(y[ch1[0][0]:ch2[0][0], x = x[ch1][0][0]:ch2[0][0]])

print ''
print 'Integral between ' + str(coords[0][0])+ '& ' + str(coords[1][0])
print y_int

Я полагал, что это сохранит координаты, и это произойдет.Это сохраняет последний щелчок в моем терминале после закрытия графика.

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

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