我想更新散景图中的多线。作为更新的一部分,我需要调整颜色。
首先我画一个简单的图:
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)
这给出了很好的结果:
然后我尝试更新这些行:
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 数据,但不会更新颜色:
如何更新线条的颜色?我已经尝试过
colors
而不是 color
。
我并不完全反对每次需要更新时(每秒多次)简单地创建一个全新的图形,但我被告知使用散景的正确方法是更新对象而不是删除和重新创造事物。
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)