首页 > 解决方案 > 无法使用 Bokeh 和 Python 绘制数据点 - 显示空布局

问题描述

我有一个具有以下值的数据框。我希望使用 Bokeh 将它们绘制在交互式图表上。

locs = ['a', 'b', 'c']
prime_vals = [1000, 54, 457]
sub_vals = [0, 112, 34]
my_dict = {'loc' : locs, 'prime' : prime_vals, 'sub' : sub_vals}
df = pd.DataFrame(my_dict)
df

*我希望 'prime' 和 'sub' 是可视化中的两个不同的复选框。可以同时选择它们(prime 和 sub)并查看与“loc”相关的值或单独查看它们的值。
下面是我的代码,但它只给了我下面的图像——没有任何值。 来自 Bokeh 的空可视化

p = figure(plot_width=1200, plot_height = 800)
aline = p.line(df["locs"], df['prime_vals'], line_width=2, 
color=Viridis4[0])
bline = p.line(df["locs"], df['sub_vals'], line_width=2, 
color=Viridis4[3])

p.yaxis.axis_label = 'x - axis label '
p.xaxis.axis_label = 'y - axis label'
legend = Legend(items=[("Prime",   [aline]),("Sub", [bline])], location=(0, 450))

t = Title()
t.text = 'Prime and sub roles over various offices'
p.title = t

p.add_layout(legend, 'left')

checkboxes = CheckboxGroup(labels=list(['Prime', 'Sub']), active=[0, 1])
callback = CustomJS(code="""aline.visible = false; // aline and etc.. are 
                        bline.visible = false; // passed in from args
                        // cb_obj is injected in thanks to the callback
                        if (cb_obj.active.includes(0)){aline.visible = true;} 
                            // 0 index box is aline
                        if (cb_obj.active.includes(1)){bline.visible = true;} """,                            
                args={'aline': aline, 'bline': bline})
checkboxes.js_on_click(callback)
output_file('some_name.html')
show(row(p, checkboxes))

我无法理解为什么没有绘制数据点。

标签: python-3.xbokeh

解决方案


推荐阅读