首页 > 解决方案 > 流入散景 varea_stack

问题描述

我正在尝试使用varea_stack并能够将数据流式传输到其中。要创建它,我使用以下代码:

self.limits_source = ColumnDataSource(dict(x=[], normal=[], amber=[], red=[], top=[]))
self._stack_graph = figure(sizing_mode='stretch_both', toolbar_location=None, tools="")
self._stack_graph.varea_stack(['normal', 'amber', 'red', 'top'], x='x', color=("green", "orange", "red"),
                               source=self.limits_source)

我的想法是在数据进入时使用回调来填充这个数据源。

但是,此代码会导致错误:

File "/anaconda2/envs/pred/lib/python3.7/site-packages/bokeh/plotting/figure.py", line 1131, in varea_stack
    for kw in _double_stack(stackers, "y1", "y2", **kw):
  File "/anaconda2/envs/pred/lib/python3.7/site-packages/bokeh/plotting/helpers.py", line 144, in _double_stack
    raise ValueError("Keyword argument sequences for broadcasting must be the same length as stackers")
ValueError: Keyword argument sequences for broadcasting must be the same length as stackers

该错误似乎表明它需要这个“y1”和“y2”区域,即只有;y 两个可堆叠区域。真的吗?ie 我只能有 2 个堆栈吗?

标签: plotbokeh

解决方案


不,该错误意味着如果您要堆叠 N 个条形,那么您必须具有例如恰好 N 个颜色(或任何属性)才能匹配。您的代码堆叠了 4 件事:

['normal', 'amber', 'red', 'top']

但仅提供 3 种颜色:

("green", "orange", "red")

这不匹配,并且无法工作。


推荐阅读