Отображение названий месяцев на оси x боке

Кто-нибудь знает, как я могу перезаписать значения оси x, чтобы отображать месяцы года в боке?

График выглядит хорошо и работает так, как задумано, но по оси x показаны числа до 12 (как и следовало ожидать), тогда как я хотел бы переопределить это и отобразить названия месяцев. Он отображает данные в следующем формате:

{u'amencke': [15, 8, 9, 49, 39, 42, 40, 23, 33, 0, 0, 0], ....} 

Используя простой линейный график:

for x, y in data.iteritems():
        pMonth = Line(data, title="Sea Bass caught", tools=False, xlabel='Month', ylabel='No. Caught',\
                width=1300, height=600, legend='top_right')

Если возможно - я бы хотел, чтобы по оси Y отображались месяцы - например, данные в этом массиве:

months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]

Любые идеи? У Bokeh есть хорошая документация, но я не смог найти способ сделать это.

Ура, Артур


person Arthur M    schedule 29.09.2015    source источник
comment
@ Alex.S Это то, на что я надеялся, но похоже, что линейный график не имеет элемента оси x или y, который вы могли бы настроить. Если я воспользуюсь предложенным вами методом pMonth.xaxis.formatter = DatetimeTickFormatter(formats=dict(months=['%b'])), я увижу что-то вроде 'Chart' object has no attribute 'xaxis' (нет атрибута оси a с другим именем). В любом случае спасибо - я изучу функцию make_axis или воспользуюсь другим типом диаграммы. Артур   -  person Arthur M    schedule 30.09.2015


Ответы (1)


Вот упрощенное решение

data = [15, 8, 9, 49, 39, 42, 40, 23, 33, 0, 0, 0] 
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]

p = figure(plot_width=400, plot_height=200)
x = months
y = data
p = figure(x_range = x)
p.line(x,y)
p.circle(x,y, fill_color="white", size=8)
show(p)

Предоставление категорий в виде x_range или y_range явно помогает. Bokeh Doc

person Chess    schedule 27.04.2016