我希望能够限制分类轴并仅显示前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)
将显示该范围的前5个因素,但这给了我这个错误:
RuntimeError:FactorRange.start是一个只读属性
谢谢
FactorRange
未配置数字开头/结尾,它配置了您要显示的因子列表:
p.x_range = FactorRange(factors=['A', ...])
“用户指南”中有一章涵盖处理分类数据:
https://bokeh.pydata.org/en/latest/docs/user_guide/categorical.html
请注意,如果要在范围已经存在(例如从回调等)后更新因子列表,则应该更喜欢设置现有范围的factors
属性,而不是创建一个全新的FactorRange
。