☰Read-only archive⌕
Looking for help with Bokeh?

This is a read-only archive. Ask questions and join the conversation on GitHub.

Visit Community Support on GitHub →
Archived discussions · Captured October 28, 2026

Bokeh horizontal lines rendering as dashed when using "webgl" output backend

Community Support
brad
brad

Hello all, I’ve noticed something strange in Bokeh version 2.4.2 when using webgl as the output backend. I first noticed this issue when plotting many month’s worth of hourly data in a bokeh plot embedded in a flask app I’ve created, but it appears in even simple examples like the one I will share below.

When a perfectly horizontal line is plotted using webgl as the output backend, the figure renders the line as dashed at each x value no matter what type of “line_dash” style is supplied. If I don’t use webgl as the backend, the line is solid and if I supply a different “line_dash” style it renders correctly. This problem is only present when a line is horizontal, not when the y value changes with each x value.

Here is a minimal working example that illustrates the behavior:

from bokeh.plotting import figure
from bokeh.io import show
from bokeh.models import ColumnDataSource
from numpy.random import random_sample

x = list(range(20))

y1 = [.5] * 12
y2 = random_sample((1, 8)).tolist()[0]
y = y1 + y2

source = ColumnDataSource({'x': x, 'y': y})

fig = figure(
    height=230, width=700, background_fill_color='#fafafa', 
    toolbar_location=None, 
    output_backend='webgl',
)

line = fig.line(
    x='x', y='y', source=source, color='black',
    line_width=3, line_dash='solid',
)

show(fig)

With webgl as the backend, here is example output of the code above:


As you can see, the horizontal part of the plot is dashed at x ticks 1, 2, 3, etc. and the issue disappears when different y values are plotted for each x value.

If I comment out the output_backend='webgl', section of code, we get a plot that renders correctly:

And lastly, if webgl is the output backend and I use a different line_dash style than “solid” things really get weird! Here’s the plot with webgl on and a “dashed” line_dash:

Anybody know what’s going on here? I’m not familiar at all with webgl and I want to use it to speed up my plot rendering of many thousands of data points. I’m not sure if this is a bug or not, or if I’m doing something wrong, but any help would be great!

⌁   Link to post
brad
brad

Thanks so much for the quick reply, Bryan. Luckily my code isn’t so slow that it’s critical I use webgl, but I’m excited to speed things up when I can. I’ll be on the lookout for Bokeh version 3.0!

⌁   Link to post

End of archived discussion · Replies are disabled