I have a dashboard with a large dataset and backend processing. I was hoping webgl would speed it up, but it causes a couple of issues - most notably it seems to break linked brushing.
Here is a minimal example, modifying an online solution:
from bokeh.io import output_file, show
from bokeh.layouts import gridplot
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure
output_file("brushing.html")
x = list(range(-20, 21))
x2 =list(range(-30, 10))
y0 = [abs(xx) for xx in x]
y1 = [xx**2 for xx in x2]
# create a column data source for the plots to share
source = ColumnDataSource(data=dict(x=x, x2=x2, y0=y0, y1=y1))
TOOLS = "box_select,lasso_select,help"
# create a new plot and add a renderer
left = figure(tools=TOOLS, width=300, height=300, title=None,output_backend="webgl" )
left.circle('x', 'y0', source=source)
left.line('x', 'y0', source=source)
p = gridplot([[left]])
show(p)
dropping the webgl backend will cause brushing to work properly again.