我正在尝试为我的工作创建一个下拉界面。我的数据集看起来像这样,它是一个随机数据集
现在我想在这里说CNN和BBC的2个下拉菜单。从下拉列表中选择一个频道后,我想选择一个根据它的值产生条形图的主题。
我最初只想访问一个值,但它给了我一个空白图。
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)
答案 0 :(得分:0)
可能存在两个问题:
首先,如果您在轴上使用分类坐标,例如" CNN"它似乎是你希望使用的,那么你需要将Bokeh改为分类范围:
p.figure(x_range=["CNN", ...]) # list all the factors for x_range
如果您以后需要更新轴,可以直接更新范围:
p.x_range.factors = [...]
此外,自Bokeh 0.13.0
起,目前存在一个问题,即阻止"单身"作为坐标工作的因素:#6660
Coordinates should accept single categorical values。结果是您必须将数据放入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)
我还建议您阅读用户指南部分Handling Categorical Data。