Ограничивающая ось с факторами в боке - PullRequest
0 голосов
/ 22 февраля 2019

Я хочу иметь возможность ограничить категориальную ось и показать только первые n факторов.Сначала я хотел использовать инструмент диапазона, но так как для этого требовался Range1d для x_range, я отказался от этого.Вот базовый код, с которого я начинаю:

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 - свойство только для чтения

Спасибо

1 Ответ

0 голосов
/ 22 февраля 2019

FactorRange не настроен с числовым началом / концом, он настроен со списком факторов, которые вы хотите видеть отображаемыми:

p.x_range = FactorRange(factors=['A', ...])

В руководстве пользователя есть целая глава, которая охватываетобработка категориальных данных:

https://bokeh.pydata.org/en/latest/docs/user_guide/categorical.html

Обратите внимание, что если вы обновляете список факторов после того, как диапазон уже существует (например, от обратного вызова или тому подобное), выследует предпочесть установить свойство factors существующего диапазона, а не создавать полностью новый FactorRange.

...