Номинальная / категориальная ось на диаграмме рассеяния

Как можно создать номинальную / категориальную ось (такие записи, как a, b, c вместо 1,2,3) на диаграмме рассеяния в боке?

Представьте, что должны быть нанесены следующие данные:

a  0.5
b  10.0
c  5.0

Я пробовал следующее:

import bokeh.plotting as bk

# output to static HTML file
bk.output_file("scatter.html", title="scatter plot example")

x = ['a', 'b', 'c']
y = [0.5, 10.0, 5.0]

p = bk.figure(title = "scatter")
p.circle(x = x, y = y)
bk.show(p)

Однако это создает пустой график. Если x данные изменены на x = [1, 2, 3], все будет построено, как ожидалось.

Что я могу сделать, чтобы a, b, c по оси x?


person user1251007    schedule 16.03.2015    source источник
comment
Другой пример вы можете найти здесь: stackoverflow.com/questions/23082912/   -  person Spirou    schedule 25.03.2015


Ответы (2)


Вам необходимо явно указать список категорий как x_range или y_range. Видеть:

http://docs.bokeh.org/en/latest/docs/gallery/categorical.html

person bigreddot    schedule 16.03.2015

Основываясь на ответе bigreddot, x_range необходимо указать явно следующим образом:

p = bk.figure(title = "scatter", x_range = x)

Это полный пример:

import bokeh.plotting as bk

# output to static HTML file
bk.output_file("scatter.html", title="scatter plot example")

x = ['a', 'b', 'c']
y = [0.5, 10.0, 5.0]

p = bk.figure(title = "scatter", x_range = x)
p.circle(x = x, y = y)
bk.show(p)
person user1251007    schedule 17.03.2015