我制作了一个显示一些图表和数据帧的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_dataframe
,plot_lines
和plot_scatter
函数都有"显示"在它们中键入一行来实际显示图形,因为%matplotlib inline
与ipywidgets不相符...感觉就像它与它有关,但不知道如何解决这个问题。
仅供参考,图表在Bokeh中完成,某些数据帧在matplotlib对象上绘制。
感谢您的帮助!