【问题标题】:After updating to bokeh 1.2 I am experiencing several problems running my bokeh app with gridplot更新到散景 1.2 后,我在使用 gridplot 运行散景应用时遇到了几个问题
【发布时间】:2019-11-23 13:59:47
【问题描述】:

我刚刚升级到 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', ...)

有没有人知道它为什么这样做? bokeh 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)

【问题讨论】:

  • 你能在你的问题中写一个完整的例子吗?
  • 错误提示 API 在 1.0.4 和 1.2 版本之间发生了变化。例如,正如错误提示的那样,当大小模式设置为“固定”时,布局对象的宽度和高度属性必须显式设置:bokeh.pydata.org/en/latest/docs/reference/models/…
  • 感谢您的回复,我已经尝试显式修复网格图的宽度和高度,但没有成功,今天我将进一步探讨这个问题,并尝试发布有意义的部分代码

标签: python bokeh


【解决方案1】:

请注意,某些警告不一定是需要修复的“问题”。我在制作的散景应用中经常遇到缺失的渲染器,因为我喜欢从空图和空源开始,然后根据输入填充它们。

在这种情况下,您可以像这样使这些警告静音:

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 小部件来分隔元素。

【讨论】:

  • 感谢您的回复和有用的建议。我猜主要问题是关于'fixed_size',甚至尝试使用固定大小的布局宽度和高度应用程序不起作用,显示空白页。它似乎正在运行,但没有任何显示,这很奇怪,因为在更新之前一切都很好..
  • 是的,在使用 bokeh v2.3 时,我在调用 gridplot 时会得到 FIXED_SIZING_MODE(即使同时提供了 plot_width 和 plot_height - 并且所有嵌套的子小部件都具有宽度和高度属性)。
猜你喜欢
  • 2014-08-18
  • 1970-01-01
  • 2018-10-22
  • 1970-01-01
  • 1970-01-01
  • 2019-06-23
  • 1970-01-01
  • 2019-03-07
  • 1970-01-01
相关资源
最近更新 更多