我很好奇在bokeh中更新Patches字形的正确方法。 我的最小例子是:
p_blur = figure(x_range=(0, 300), y_range=(0, 300))
source = ColumnDataSource({'xs':[[100,200,300], [10,50,500,400]], 'ys':[[30,150,70], [10,500,50,50]]})
polygons = Patches(xs="xs", ys="ys",fill_color="#fb9a99")
glyph = p_blur.add_glyph(source, polygons)
nb = show(p_blur, notebook_handle=True)
如果我现在想要更新字形,例如通过
source1 = ColumnDataSource({'xs':[[10,20,30], [10,50,50,40]], 'ys':[[30,15,70], [10,50,50,50]]})
glyph.data_source = source1
push_notebook( nb )
我没有看到任何变化。但是,如果我这样做:
p_blur.renderers.remove(glyph)
glyph = p_blur.add_glyph(source1, polygons)
push_notebook( nb )
反映了这种变化。看起来虽然第二种方式过于苛刻。有更正确的方法吗?
谢谢!
答案 0 :(得分:0)
您可以将新数据分配给source.data
,试试这个:
source.data = {'xs':[[10,20,30], [10,50,50,40]], 'ys':[[30,15,70], [10,50,50,50]]}
push_notebook(nb)