我刚刚升级到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一切正常
我尝试更改大小设置模式并指定宽度和高度,但是如果我不选择“固定”,它会显示空白页面,否则它只会在gridplot属性中始终显示出带有plot_width和plot_height的错误消息。
此外,第一个警告指示绘图中缺少渲染器,它被引用为我创建的一个空图形,在网格图中仅具有特定大小的空白。有什么建议可以解决吗?
下面您可以看到我正在使用的部分代码:
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)
答案 0 :(得分:0)
请注意,某些警告不一定是需要解决的“问题”。在我制作的bokeh应用程序中,我会丢失很多渲染器,因为我喜欢从空图和空源开始,然后根据输入进行填充。
在这种情况下,您可以像这样静默这些警告:
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”警告,我将建议替代方法而不是答案:
您可以使用具有给定宽度和高度的间隔物对象 https://bokeh.pydata.org/en/latest/docs/reference/layouts.html
在实施Spacer之前,您可以使用空的Div小部件来分隔元素(它们也可以放入小部件对象中)