Теряется ссылка на Matplotlib TextBox widget если программа запущена повторно
Пытаюсь освоить matplotlib. Использую pyton + spyder из Anaconda под Windows 10. Хочу сделать вызываемую функцию с интерактивными возможностями matplotlib. Пробую запуск кода из документации разными способами.
Если вызвать функцию test(1) то код работает как полагается.
Вызов test(0) выполняет промежуточный шаг и затем вызывает test(1). В этом случае ссылка на TexBox widget теряется и взаимодействие с графиком потеряно.
Возможно ли сохранить ссылку на TexBox widget при вызове test(0)?
Почему она теряется?
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import TextBox
def test(counter):
if counter == 0 :
print('step 1')
counter = counter +1
step(counter)
elif counter == 1:
t = np.arange(-2.0, 2.0, 0.001)
fig, ax = plt.subplots()
s = t ** 2
initial_text = " 2"
l, = plt.plot(t, s, lw=2)
plt.subplots_adjust(bottom=0.2)
def submit(text):
t = np.arange(-2.0, 2.0, 0.001)
ydata = t**eval(text)
l.set_ydata(ydata)
ax.set_ylim(np.min(ydata), np.max(ydata))
plt.draw()
axbox = plt.axes([0.1, 0.05, 0.8, 0.075])
text_box = TextBox(axbox, 'Evaluate', initial=initial_text)
text_box.on_submit(submit)
plt.show()
print('returning TexBox')
return(text_box)
else : print('esle condition has worked in test function')
def step(counter):
print('function step counter = ', counter)
test(counter)