【发布时间】:2018-01-17 15:53:26
【问题描述】:
我制作了一个显示一些图表和数据框的 jupyter 笔记本。然后我可以更改小部件值以刷新数据框和图表。
我遇到了两个问题:
- 每次我在打开 Jupyter notebook 后第一次运行这本书时,都会得到这个:
然而,当我再次运行所有单元格时,我得到了所需的输出:
-
每次我使用小部件并进行更改时,笔记本最终都会正确刷新,但由于某种原因它不断输出前几张图,似乎清除了输出,然后再次显示它们,然后清除输出,然后这样的几次迭代,就能够显示一切。这是我的事件处理程序:
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 对象上绘制的。
感谢您的帮助!
【问题讨论】:
标签: python-2.7 pandas jupyter-notebook bokeh ipywidgets