ipywidgets:如何基于复选框选择来更新多个序列的图

问题描述 投票:3回答:1

我正在使用Ipython笔记本,pandas库和bokeh绘图库,并且有一个生成网格图的函数。我正在尝试设置一些复选框,每个复选框对应于其中一个图,然后仅使用已选择了相应复选框的图来更新网格图。对于ipywidgets libray似乎没有太多支持。到目前为止,这是我的尝试;我不确定如何将我创建的复选框传递给函数来更新我的网格图,因此将不胜感激。谢谢。

attributes = df.columns.tolist()
from ipywidgets import Checkbox, interact
from IPython.display import display

chk = [Checkbox(description=attributes[i]) for i in range(len(attributes))]
#this displays the checkboxes I created correctly
display(*chk)

#update plot takes in the names of the columns to be displayed and returns 
#a gridplot containing all corresponding plots
#not sure about the part below though
interact(updatePlot,args=chk)
python pandas checkbox ipython bokeh
1个回答
8
投票

这将显示复选框并在更改时调用updatePlot函数:

from ipywidgets import Checkbox, interact
from IPython.display import display

l = ["Dog", "Cat", "Mouse"]
chk = [Checkbox(description=a) for a in l]

def updatePlot(**kwargs):
    print([(k,v) for k, v in kwargs.items()])

interact(updatePlot, **{c.description: c.value for c in chk})
© www.soinside.com 2019 - 2024. All rights reserved.