我希望能够限制分类轴,并且仅显示前n个因子。我最初想使用范围工具,但是由于需要x_range的Range1d,因此我放弃了。这是我开始的基本代码:
cats = ['A','B','C','D','E','F','G','H','I','J']
df = pd.DataFrame(data={
'cat': cats,
'y': np.random.randint(100, size=len(cats)),
})
p = figure(x_range=df['cat'])
p.vbar(x='cat', top='y', width=0.9, source=df)
l = layout([[p]])
show(l)
似乎
p.x_range = FactorRange(start=0, end=4)
将显示该范围内的前五个因素,但这给了我这个错误:
RuntimeError:FactorRange.start是只读属性
谢谢
答案 0 :(得分:1)
FactorRange
未配置数字开始/结束,而是配置了要显示的因子列表:
p.x_range = FactorRange(factors=['A', ...])
《用户指南》中有一整章涵盖了处理分类数据:
https://bokeh.pydata.org/en/latest/docs/user_guide/categorical.html
请注意,如果您在范围内已经存在之后(例如,通过回调等)更新一系列因素,则应该设置现有范围的factors
属性,而不是创建一个全新的FactorRange
。