Я пытаюсь создать функцию, используя библиотеку MatPlotLib, которая вызывает график, ждет щелчка мышью от пользователя (и отображает что-то после каждого щелчка), а затем возвращает что-то только после закрытия окна графика.
Я написал некоторый код, но моя проблема в том, что при вызове функции мой скрипт на python не ждет закрытия окна графика, прежде чем продолжить, поэтому ввод еще не был собран.Мне сказали, что plot.show () должен нормально блокироваться, но даже с plot.show (block = True) это происходит.
Мой код выглядит следующим образом:
import matplotlib.pyplot as plt
%matplotlib
def function():
def subfunction(event):
global values
values.append(event.xdata)
ax.plot([0, event.xdata], [0, event.ydata])
fig.canvas.draw()
values = []
fig, ax = plt.subplots()
fig.canvas.mpl_connect("button_press_event", select_point)
plt.show(block=True)
return values
#main:
print('Values:', function())
В результате получается, что я получаю вывод 'Values: []'
сразу же, как только появляется окно графика.
Яне уверен, что я делаю неправильно, поскольку все документы, которые я могу найти, предполагают, что это не должно происходить.