Bokeh或HoloViews多个依赖的下拉菜单

时间:2017-10-30 08:25:42

标签: bokeh holoviews

我有一个数据集,其中3列具有分类值。我想在Bokeh或HoloViews中创建3个下拉列表,其中第一个下拉选项确定其他2个下拉列表中列表的值。任何人都可以指向我展示如何做到这一点的任何教程或博客或文档。我似乎没有罚款。 我很感激你的时间。 谢谢!

2 个答案:

答案 0 :(得分:0)

如果您使用的是Jupyter笔记本,则可以使用 paramnb要做到这一点,利用笔记本将代码分成不同单元格的方式:

enter image description here

我在这里"运行全部",然后在第一个小部件中选择了c3,重新运行它下面的两个单元格来更新它们。然后我选择了一个"高"第二组小部件中的值,重新运行绘图以更新它。

如果您有笔记本,这种模式可以让您像这样进行任意链接,如果Jupyter Dashboards是您的选项,那么您可以将这些单元格串在一起以创建应用程序。但这只是一种方法......

答案 1 :(得分:0)

这是一个示例,其中一个下拉列表的值根据在另一个下拉列表中所做的选择而改变。
在示例中,当您在一个下拉列表中选择一个大洲时,带有可能国家的下拉列表在另一个下拉列表中更改。发生这种情况的原因是: @ 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 +面板问题有一个下拉列表示例,该下拉列表取决于另一个下拉列表的值:
How do i automatically update a dropdown selection widget when another selection widget is changed? (Python panel pyviz)

具有依赖于其他下拉菜单的下拉菜单示例来自本教程页面上的GoogleMapViewer: https://panel.pyviz.org/user_guide/Param.html