2017-08-09 59 views
1

我製作了一個顯示一些圖表和數據框的jupyter筆記本。然後,我可以更改窗口小部件值來刷新數據框和圖形。Jupyter Ipywidgets在顯示和刷新時表現不一致

我遇到兩個問題:

  1. 每次我打開筆記本Jupyter運行後書的第一次,我得到這個:

enter image description here

然而,當我再次運行所有細胞,我得到所需的輸出:

enter image description here

  1. 每次使用窗口小部件並進行更改時,筆記本電腦最終都會正確刷新,但出於某種原因,它不斷輸出頂部的少量圖形,似乎清除了輸出,然後顯示他們再次,然後清除輸出,經過幾次迭代後,能夠顯示所有內容。這裏是我的事件處理程序:

    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_dataframeplot_linesplot_scatter功能都在他們「展示」型線,以實際顯示自%matplotlib inline不能很好地發揮ipywidgets圖..這種感覺與它有關,但不知道如何解決這個問題。

僅供參考在Bokeh中完成圖形,某些數據框在matplotlib對象上繪製。

感謝您的幫助!

回答

0

這個警告只是一個應該在下一個版本的ipywidgets中修復的錯誤,我相信。同時,您可以做的唯一事情是在加載或重新加載筆記本電腦後等待約10-20秒,並在右下角顯示「可信」框,如下圖所示; enter image description here

只有當您看到該框出現後才嘗試執行所有代碼。

相關問題