在Bokeh中,如何在更新多行数据源时更新线条的颜色?

问题描述 投票:0回答:1

我想更新散景图中的多线。作为更新的一部分,我需要调整颜色。

首先我画一个简单的图:

from bokeh.plotting import figure, show

p = figure()
# create a dummy multiline so that we can update it later with new data
p.multi_line(xs=[[0,1]], ys=[[0,1]], name='my_lines')

show(p)

这给出了很好的结果:

enter image description here

然后我尝试更新这些行:

lines_ds = p.document.get_model_by_name('my_lines').data_source

lines_ds.data = dict(
    xs=[[1,2,3],[0,0]],
    ys=[[0,1,0],[0,1]],
    color=['black','red']
)
show(p)

这会更新我的 x 和 y 数据,但不会更新颜色:

enter image description here

如何更新线条的颜色?我已经尝试过

colors
而不是
color
。 我并不完全反对每次需要更新时(每秒多次)简单地创建一个全新的图形,但我被告知使用散景的正确方法是更新对象而不是删除和重新创造事物。

python bokeh
1个回答
0
投票
color

需要成为 multi_line 原始创建的一部分:

from bokeh.plotting import figure, show

p = figure()
# create a dummy multiline so that we can update it later with new data
p.multi_line(xs=[[0,1]], ys=[[0,1]], name='my_lines', color=['red'])

show(p)

其次,我在更新时需要将
color

更改为

line_color
lines_ds = p.document.get_model_by_name('my_lines').data_source

lines_ds.data = dict(
    xs=[[1,2,3],[0,0]],
    ys=[[0,1,0],[0,1]],
    line_color=['black','red']
)
show(p)

© www.soinside.com 2019 - 2024. All rights reserved.