Python 使用Bokeh作为下拉菜单,可以创建不同的图表

Python 使用Bokeh作为下拉菜单,可以创建不同的图表,python,visualization,bokeh,Python,Visualization,Bokeh,我正在尝试为我的工作创建一个下拉界面。我的数据集看起来像这样,它是一个随机数据集 现在我想要两个下拉列表,比如CNN和BBC。在从下拉列表中选择一个频道之后,我想选择一个主题,根据它的值生成一个条形图 我最初尝试只访问一个值,但它给了我一个空白的图表 from bokeh.plotting import figure from bokeh.io import output_notebook,show,output_file p=figure() import csv data = [ro

我正在尝试为我的工作创建一个下拉界面。我的数据集看起来像这样,它是一个随机数据集

现在我想要两个下拉列表,比如CNN和BBC。在从下拉列表中选择一个频道之后,我想选择一个主题,根据它的值生成一个条形图

我最初尝试只访问一个值,但它给了我一个空白的图表

from bokeh.plotting import figure

from bokeh.io import output_notebook,show,output_file

p=figure()

import csv
data = [row for row in csv.reader(open('C:/Users/Aishwarya/Documents/books/books_q4/crowd_computing/Bokeh-Python-Visualization-master/interactive/data/data.csv', 'r',encoding="utf8"))]

p.vbar(x=data[1][2], width=0.5, bottom=0,
            top=data[1][1], color="firebrick")

#output_notebook()
output_file('1.html')

show(p)

可能存在两个问题:

  • 第一个是,如果您在轴上使用分类坐标,例如“CNN”,您似乎希望使用它,那么您需要etll Bokeh分类范围是什么:

    p.figure(x_range=["CNN", ...]) # list all the factors for x_range
    
    如果以后需要更新轴,可以直接更新范围:

    p.x_range.factors = [...]
    
  • 此外,自Bokeh
    0.13.0
    起,存在一个当前未解决的问题,该问题阻止“单一”因子用作坐标:。结果是,您必须将数据放在Bokeh
    ColumnDataSource
    explicityl(始终是一个选项)中,或者在这种情况下,解决方法也只是传递单个项目列表:

    p.vbar(x=["cnn"], ...)
    
以下是您的代码的完整更新,其中包含一些虚假数据:

from bokeh.plotting import figure
from bokeh.io import show

p = figure(x_range=["cnn"])

p.vbar(x=["cnn"], width=0.5, bottom=0, top=10, color="firebrick")

show(p)


我还建议您学习《用户指南》部分。

您的问题是关于两个下拉菜单,还是条形图不起作用?需要一些关于您的数据的想法-请在帖子中包含一个示例。条形图不起作用。我还没有生成数据集。数据集的样本已包含在上图中。这是我询问的“数据”变量和csv文件内容,您能提供样本吗?