python - 更新到散景 1.2 后,我在使用 gridplot 运行散景应用时遇到了几个问题
问题描述
我刚刚升级到散景 1.2,我的散景应用程序停止工作,给我以下错误并只显示一个空白页:
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 的错误消息。
此外,第一个警告表示一个缺少渲染器的图,它指的是我创建的一个空图,在网格图中只有一个特定大小的空白空间。有什么建议可以解决这个问题吗?
您可以在下面看到我正在使用的代码部分:
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)
解决方案
请注意,某些警告不一定是需要修复的“问题”。我在制作的散景应用程序中经常遇到缺失的渲染器,因为我喜欢从空图和空源开始,然后根据输入填充它们。
在这种情况下,您可以像这样使这些警告静音:
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://docs.bokeh.org/en/latest/docs/reference/layouts.html
https://docs.bokeh.org/en/latest/docs/user_guide/layout.html
在实现 Spacer 之前,您可以使用空的 Div 小部件来分隔元素。
推荐阅读
- kivy - 删除的小部件仍保留在父级上
- visual-studio-2019 - 在 VS2019 Preview 2.0 中运行应用程序时 Blazor 显示错误消息
- django - 如何在 django 中格式化 json 响应?
- android - 隐藏启动画面的标题和操作栏并在开始时删除白屏
- tensorflow - compute_gradients 返回的究竟是什么以及它如何依赖于 batch_size?
- android - 设置 manageSpaceActivity 会在 API 28 (Pie) 上禁用 Clear Data 按钮
- javascript - Object.defineProperty 的限制以及 Object.prototype 是否必须参与
- oauth-2.0 - 混合流中不能发生代码替换吗?
- r - 将 R 中 Mann-Kendall 测试的输出格式化并导出到 Rstudio 中的 excel
- python - 如何关闭 Seaborn 地块