Python 2.7 Jupyter IPyWidget在显示和刷新时行为不一致

Python 2.7 Jupyter IPyWidget在显示和刷新时行为不一致,python-2.7,pandas,jupyter-notebook,bokeh,ipywidgets,Python 2.7,Pandas,Jupyter Notebook,Bokeh,Ipywidgets,我制作了一个jupyter笔记本,它显示了一些图形和数据帧。然后,我可以更改小部件的值以刷新数据帧和图形 我遇到了两个问题: 每次打开Jupyter笔记本后第一次运行该书时,我都会得到以下信息: 然而,当我再次运行所有单元格时,我得到了所需的输出: 每次我使用小部件并进行更改时,笔记本最终都会正确刷新,但出于某种原因,它会不断输出最上面的几个图形,似乎会清除输出,然后再次显示它们,然后清除输出,经过几次迭代后,它能够显示所有内容。以下是我的事件处理程序: def handle_submit(

我制作了一个jupyter笔记本,它显示了一些图形和数据帧。然后,我可以更改小部件的值以刷新数据帧和图形

我遇到了两个问题:

  • 每次打开Jupyter笔记本后第一次运行该书时,我都会得到以下信息:
  • 然而,当我再次运行所有单元格时,我得到了所需的输出:

  • 每次我使用小部件并进行更改时,笔记本最终都会正确刷新,但出于某种原因,它会不断输出最上面的几个图形,似乎会清除输出,然后再次显示它们,然后清除输出,经过几次迭代后,它能够显示所有内容。以下是我的事件处理程序:

    def handle_submit(sender):
        clear_output(wait=True)
    
        start = w.slider_start.value.strftime('%Y-%m-%d')
        end = w.slider_end.value.strftime('%Y-%m-%d')
    
        zval = z.value
        yval = y.value
        xval = x.value
    
        df_dlm,df_dgo,df_stats = show_stats(zval,yval,xval,start,end)
        df_e = show_stats_exp(zval,yval,xval,start,end)
    
        display_dataframe(df_stats)
        plot_lines_e(df_e)
        dfx = prepare_data(df_dlm,df_dgo)
        plot_lines(dfx)
        plot_scatter(dfx)
    
  • 其中,
    display\u dataframe
    plot\u lines
    plot\u scatter
    函数中都有一条“display”类型的线来实际显示图形,因为
    %matplotlib inline
    与ipyWidget不太好用……感觉这与此有关,但不确定如何解决这个问题

    仅供参考,图形在Bokeh中完成,某些数据帧在matplotlib对象中绘制


    谢谢你的帮助

    这个警告只是一个bug,我相信应该在下一个版本的ipywidgets中修复。同时,您唯一能做的就是在加载或重新加载笔记本后等待约10-20秒,“受信任”框出现在右角,如下图所示;


    只有在看到框出现后才尝试执行所有代码。

    我相信,这个警告只是一个bug,应该在下一版本的ipywidgets中修复。同时,您唯一能做的就是在加载或重新加载笔记本后等待约10-20秒,“受信任”框出现在右角,如下图所示;

    只有在看到框出现后,才尝试执行所有代码