Задать вопрос
@datamainer

Как определить значение X и Y по нажатию курсора на область графика?

Как создать область X Y для будущего графика, где можно нажать курсором в любое допустимое значение от X до Y, и узнать точные координаты точки после нажатия ?
  • Вопрос задан
  • 473 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
Для начала нужно выбрать библиотеку в которой будет рисоваться график. самая простая, на ней даже детей учат - это turtle. В ней можно делать простые игры и считывать координаты клика
https://docs.python.org/3/library/turtle.html
Ответ написан
@rPman
математика? график это график функции?

Когда ты сам рисуешь график, ты должен реализовать формулу, которая из x и y=F(x) твоего графика вычислять screenX и screenY, т.е. координаты (чаще всего в пикселах) точек на экране

соответственно обратный процесс, из клика по экрану, тебе нужно написать обратное преобразование

если с X обычно все просто, пусть minx и maxx это минимальное и максимальное значения на графике для x, а график на экране рисуется с minScreenX до maxScreenX, то вычисление точки screenx = ((x-minx)*(maxScreenX-minScreenX)/(maxx-minx))+minScreenX
точно так же считаешь screeny, только вместо x берешь y=f(x), miny, maxy и minScreenY, maxScreenY соответственно

обратное преобразование для x проблем не составит, это школьный курс, но вот для y немного сложнее, если у f(x) можно аналитически вывести обратную функцию x=FF(y) то все просто, иначе, есть простой способ - сохранить в памяти в массиве все значения функции для каждой точки screenX на экране в виде ассоциативного массива ff[x]=[...] и использовать его вместо обратной функции
Ответ написан
Комментировать
@lz961
# x = ....
# y = ....

from  matplotlib import pyplot as plt
fig =  plt.figure()

def press_event(event):
    print (event.xdata, event.ydata)

fig.canvas.mpl_connect('button_press_event', press_event)
ax = fig.add_subplot(111)

ax.plot(x, y)
plt.show()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы