是否可以将来自IPython小部件的值传播到其他单元格,而无需在下游重新加载这些单元格?
具体来说,我有一些复选框,指示是否在每个图表中绘制某些行。我有几个图表,我希望将图表放在单独的单元格中,以便我可以提供每个图表中的内容的文字说明。我想象的粗略结构如下所示,列表中的每个编号项目都是不同的单元格。
interactive(some_plotting_fn, ckbox1=CheckboxWidget(), ckbox2=CheckboxWidget())
plot_first_chart_based_on_check_boxes()
plot_second_chart_based_on_check_boxes()
这可行吗?我可以在一个单元格中完成所有绘图,但随后这些绘图最终聚集在一起,我更喜欢用描述图表的文字来介绍它们。
答案 0 :(得分:1)
将checkbox
创建为单独的对象:
from IPython.html.widgets import interactive, Checkbox
c= Checkbox()
interactive(lambda x,y: print(x,y), x=c, y=Checkbox())
----
display X and Y checkbox
这里有一些降价......
interactive(lambda x,y: print(x,z), x=c, z=Checkbox())
----
display X and Z checkbox
这里有更多降价,我不会使用互动,所以你需要重新运行单元格以查看更改:
if x is True:
title('is is True')
plot(...)
X复选框跨单元格同步(至少在IPython master上)
用绘图功能替换打印件。您还可以通过c.value
访问“x”的值。
[edit]回复人们提出的编辑:请注意,在IPython主版和未来版本中,Widget
后缀已被删除。带有后缀的API是临时的,永远不会是明确的。因此,正确的用法确实是Checkbox
而不是CheckboxWidget
。