После обновления до bokeh 1.2 у меня возникло несколько проблем при запуске приложения bokeh с gridplot - PullRequest
0 голосов
/ 25 июня 2019

Я только что обновился до bokeh 1.2, и мое приложение bokeh перестало работать, выдав мне следующую ошибку и отображая только пустую страницу:

05:04 [WARNING] W-1000 (MISSING_RENDERERS): Plot has no renderers: Figure(id='1177', ...)
05:04 [WARNING] W-1005 (FIXED_SIZING_MODE): 'fixed' sizing mode requires width and height to be set: Column(id='1209', ...)
05:04 [WARNING] W-1005 (FIXED_SIZING_MODE): 'fixed' sizing mode requires width and height to be set: Column(id='1255', ...)
05:04 [WARNING] W-1005 (FIXED_SIZING_MODE): 'fixed' sizing mode requires width and height to be set: WidgetBox(id='1174', ...)
05:04 [WARNING] W-1005 (FIXED_SIZING_MODE): 'fixed' sizing mode requires width and height to be set: WidgetBox(id='1175', ...)
05:04 [WARNING] W-1005 (FIXED_SIZING_MODE): 'fixed' sizing mode requires width and height to be set: WidgetBox(id='1176', ...)

Кто-нибудь знает, почему он это делает?все работает нормально с боке 1.0.4

Я попытался изменить режим определения размера и указать ширину и высоту, но он отображает пустую страницу, если я не выбираю «фиксированный» или просто продолжает выдавать сообщения об ошибках сplot_width и plot_height среди атрибутов gridplot.

Кроме того, первое предупреждение указывает на график с отсутствующим средством визуализации, и оно ссылается на пустую фигуру, которую я создал, чтобы иметь только пустое пространство определенного размера вgridplot.Любое предложение, чтобы исправить это?

Ниже вы можете увидеть часть кода, который я использую:

widget_highlight_select = widgetbox([highlight_select])

widget_cd_select_button = widgetbox([rendering_button]+[customer_select]+[debtor_select])

widget_degree_select = widgetbox([degree_select])

empty = figure(plot_width=200, plot_height=100) #just to create space between widgets
empty.outline_line_color = None

plot.renderers.append(graph)

patterns_series = column([fig, ts])

#layout
l = gridplot([[widget_highlight_select, widget_degree_select, empty, widget_cd_select_button, None,spinner], [plot, patterns_series]], sizing_mode='fixed') #, merge_tools=False)

1 Ответ

0 голосов
/ 30 июня 2019

Обратите внимание, что некоторые предупреждения не обязательно являются «проблемами», которые необходимо устранить. Я часто получаю недостающие средства рендеринга в приложениях боке, потому что мне нравится начинать с пустых графиков и пустых источников и заполнять их на основе входных данных.

В таких случаях вы можете отключить эти предупреждения следующим образом:

from bokeh.core.validation import silence
from bokeh.core.validation.warnings import EMPTY_LAYOUT, MISSING_RENDERERS
silence(EMPTY_LAYOUT, True)
silence(MISSING_RENDERERS, True)

Однако я бы добавил их только тогда, когда весь код готов, или вы можете пропустить предупреждения, которые вы действительно хотите исправить при разработке.

Для предупреждения «fixed_size» я предложу альтернативы вместо ответа:

Вы можете использовать объект Spacer с заданной шириной и высотой https://bokeh.pydata.org/en/latest/docs/reference/layouts.html

До того, как Spacer был реализован, вы могли использовать пустые виджеты Div для интервальных элементов (и они также входят в объекты widgetbox)

...