我有一个数据集,其中 3 列具有分类值。我想在 Bokeh 或 HoloViews 中创建 3 个下拉菜单,其中第一个下拉选择确定其他 2 个下拉菜单中列表的值。任何人都可以将我指向任何显示如何做到这一点的教程或博客或文档。我似乎没有任何问题。我很感激你的时间。谢谢!
2 回答
如果您在 Jupyter notebook 中工作,则可以使用 paramnb来执行此操作,利用 notebook 将代码分隔到不同单元格的方式:
在这里我做了“全部运行”,然后在第一个小部件中选择了 c3,它重新运行它下面的两个单元格以更新它们。然后我在第二组小部件中选择了一个“高”值,它重新运行绘图以更新它。
如果您有笔记本,此模式将允许您像这样进行任意链接,并且如果您可以选择 Jupyter Dashboards,那么您可以将这些单元串在一起以创建应用程序。但这只是一种方法......
这是一个示例,其中一个下拉列表的值根据在另一个下拉列表中所做的选择而变化。
在该示例中,当您在一个下拉列表中选择一个大陆时,包含可能国家/地区的下拉列表会在另一个下拉列表中更改。这是因为:@pn.depends(continent.param.value, watch=True)
import panel as pn
_countries = {
'Africa': ['Ghana', 'Togo', 'South Africa'],
'Asia' : ['China', 'Thailand', 'Japan'],
'Europe': ['Austria', 'Bulgaria', 'Greece']
}
continent = pn.widgets.Select(
value='Asia',
options=['Africa', 'Asia', 'Europe']
)
country = pn.widgets.Select(
value=_countries[continent.value][0],
options=_countries[continent.value]
)
# the countries dropdown is dependent on the continent dropdown
@pn.depends(continent.param.value, watch=True)
def _update_countries(continent):
countries = _countries[continent]
country.options = countries
country.value = countries[0]
pn.Row(continent, country)
这个 holoviews + 面板问题有一个下拉列表示例,该下拉列表取决于另一个下拉列表的值:
当另一个选择小部件发生更改时,如何自动更新下拉选择小部件?(Python面板pyviz)
下拉列表依赖于其他下拉列表的示例来自本教程页面上的 GoogleMapViewer: https ://panel.pyviz.org/user_guide/Param.html