If have a couple of circles that I want to update the color (for my specific problem I have thousand of circles) .
Using Slider or TextInput it is quite easy:
plot = figure(plot_width = 300, plot_height = 300)
src=ColumnDataSource(dict(x=[1, 2, 3],y=[3, 7, 5],color=3*['blue']))
circ_slider = Slider(start=0, end=2, value=1, step=1)
plot.circle('x', 'y', size = 20, color = 'color', alpha = 0.6, source=src)
def thecallback():
return CustomJS(args=dict(source=src,circ=circ_slider),
code="""
const data = source.data;
var col = data['color']
var i = circ.value;
for (let i = 0; i < col.length; i++) {
col[i] = 'blue'
}
col[i] = 'red';
source.change.emit();
""")
circ_slider.js_on_change('value', thecallback())
show(row(plot,circ_slider))
In order to make an animation I don’t want to use Slider, TextInput …
Is there a Bokeh Python command to inject some JS ?
The order of the circle color are depending from a parameter defined in a pandas DataFrame.
Thanks
PS:
I have posted the question on stack but I think It wasn’t clear
Is there some user action to start/stop the animation? e.g. click a button to toggle animation on or off? Or do you just want it animating immediately and continuously? If so, then I think you will have to wait for this issue t be complete for a clean solution:
There is an open WIP Pull Request already, so hopefully for 3.1 in a couple of months. The issue itself has various suggestions for workarounds from users, I am not sure how up to date / workable they are though, you’d just have to try them out.