Python 2.7 Jupyter/ipython笔记本:如何使用交互式小部件防止重绘

Python 2.7 Jupyter/ipython笔记本:如何使用交互式小部件防止重绘,python-2.7,matplotlib,redraw,jupyter-notebook,Python 2.7,Matplotlib,Redraw,Jupyter Notebook,我正在努力在jupyter笔记本中构建一个交互式工具。根据这里的讨论,我构建了以下示例: %matplotlib笔记本 将matplotlib.pyplot作为plt导入 从ipywidgets导入选择、交互式下拉列表 从IPython.display导入显示 图,ax=plt.子批次() ax.绘图(范围(5)) vline=ax.axvline(1,color='k') hline=ax.axhline(0.5,color='k') def set_光标(x,y): vline.set_扩展

我正在努力在jupyter笔记本中构建一个交互式工具。根据这里的讨论,我构建了以下示例:

%matplotlib笔记本
将matplotlib.pyplot作为plt导入
从ipywidgets导入选择、交互式下拉列表
从IPython.display导入显示
图,ax=plt.子批次()
ax.绘图(范围(5))
vline=ax.axvline(1,color='k')
hline=ax.axhline(0.5,color='k')
def set_光标(x,y):
vline.set_扩展数据((x,x))
hline.set_ydata((y,y))
ax.figure.canvas.draw_idle()
交互式(设置光标,x=ax.get\uxlim(),y=ax.get\uylim())
除了最后一行(交互式…)必须在不同的单元格中运行之外,它工作得非常好。 如果我想在同一个单元格中启动所有内容(如果使用类方法,则从同一个对象启动,这是我最后想要的),我必须使用以下代码:

%matplotlib笔记本
将matplotlib.pyplot作为plt导入
从ipywidgets导入选择、交互式下拉列表
从IPython.display导入显示
图,ax=plt.子批次()
ax.绘图(范围(5))
vline=ax.axvline(1,color='k')
hline=ax.axhline(0.5,color='k')
def set_光标(x,y):
vline.set_扩展数据((x,x))
hline.set_ydata((y,y))
ax.figure.canvas.draw_idle()
显示器(图)
工具=交互式(设置光标,x=ax.get\uxlim(),y=ax.get\uylim())
显示(工具)
但在这种情况下,每次在小部件中选择新值时,都会重新绘制完整的图形

有没有可能让所有东西都从同一个单元顺利发射? 任何想法都欢迎