CheckboxGroup,散景,堆积条形图

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

我已经使用悬停工具在bokeh中制作了一个堆积的条形图,现在还想在绘图中添加CheckboxGroup。但是,我对Bokeh还是陌生的,所以我有点挣扎。我尤其不确定如何进行更新功能,我曾尝试启动它,但根本不了解它需要做什么:

    trees_to_plot = [tree_selection.labels[i] for i in 
                        tree_selection.active]
    temp = make_dataset(trees_to_plot,
                           bin_width = 40)
    # \TODO: add more code here!

图表本身的代码如下:

p = figure(x_range = districtName,plot_width = 900, plot_height=400, 
           title='Tree pr. district',toolbar_location= None)
# Stacked bar chart
renderers = p.vbar_stack(stackers=treeName,x='bydelsnavn',source=temp,
            width=0.5, color = colornames)

# Add the hover tool
for r in renderers:
    tree = r.name
    hover = HoverTool(tooltips=[
        ("%s" % tree, "@{%s}" % tree)
    ], renderers = [r])
    p.add_tools(hover)

p.xaxis.axis_label = 'Copenhagen city cistricts'
p.yaxis.axis_label = 'Tree counts'

# Creat the checkbox selection element
tree_selection = CheckboxGroup(labels=treeName, active = [0,1])
# Link the checkboxes to the information on the graph
tree_selection.on_change('active', update)

# Add to the CheckboxGroup to the figure
controls = WidgetBox(tree_selection)
layout = row(controls,p)
show(layout)

此代码将显示图表中的所有复选框,但复选框与图表本身之间显然没有发生任何交互。有人可以指出我正确的方向吗?

谢谢! :D

python bokeh stacked-chart user-interaction
1个回答
0
投票

您正在使用show创建一个静态HTML页面。但是,要传递给on_change,您需要传递一个Python函数,为此,您需要使用Bokeh服务器。请尝试遵循以下示例:https://docs.bokeh.org/en/latest/docs/user_guide/server.html#single-module-format如果仍然无法运行,请确保发布无需任何修改即可运行的完整代码。

© www.soinside.com 2019 - 2024. All rights reserved.