Repository: bokeh/bokeh

Issue:
Log scale graph will be blank if output_backend is webgl
#### ALL software version info (bokeh, python, notebook, OS, browser, any other relevant packages)
OS: Windows 7 Pro SP1 x64
Browser: Firefox Nightly (58.0a1 64bit) and Chrome (61.0.3163.100 64bit)

python==3.5.4 (32bit)
bokeh==0.12.10
Jinja2==2.9.6
MarkupSafe==1.0
numpy==1.13.3
pandas==0.20.3
python-dateutil==2.6.1
pytz==2017.2
PyYAML==3.12
six==1.11.0
tornado==4.5.2


#### Description of expected behavior and the observed behavior
Log scale grpah will be blank if output_backend is webgl
For svg and canvas backend can display log scale graph normally

#### Complete, minimal, self-contained example code that reproduces the issue
```python
# just copy from http://bokeh.pydata.org/en/latest/docs/gallery/logaxis.html
import numpy as np
from bokeh.io import output_file, show
from bokeh.plotting import figure

x = np.linspace(0.1, 5, 100)

p = figure(title="log axis example", y_axis_type="log",
           y_range=(0.001, 10**22), output_backend='webgl')

p.line(x, np.sqrt(x), legend="y=sqrt(x)",
       line_color="tomato", line_dash="dotdash")

p.line(x, x, legend="y=x")
p.circle(x, x, legend="y=x")

p.line(x, x**2, legend="y=x**2")
p.circle(x, x**2, legend="y=x**2",
         fill_color=None, line_color="olivedrab")

p.line(x, 10**x, legend="y=10^x",
       line_color="gold", line_width=2)

p.line(x, x**x, legend="y=x^x",
       line_dash="dotted", line_color="indigo", line_width=2)

p.line(x, 10**(x**2), legend="y=10^(x^2)",
       line_color="coral", line_dash="dashed", line_width=2)

p.legend.location = "top_left"

p.xaxis.axis_label = 'Domain'
p.yaxis.axis_label = 'Values (log scale)'

output_file("logplot.html", title="log plot example")

show(p)  # open a browser
```

#### Stack traceback and/or browser JavaScript console output
no error or warning shown

#### Screenshots or screencasts of the bug in action
[Here](https://imgur.com/a/lH05N)


Discussion:
@fgoinai webgl issues are often the most platform dependent. Can you please provide the additional information about platform and browser version? Additionally, can you make the code sample compelete? It is missing imports. 
Updated
My teammate also tested the code snippet on Safari 11 and Chrome 61 at macOS High Sierra. Both show blank page also
@fgoinai great thanks for the extra info. Just by way of setting expectations, the previous maintainer of webgl in Bokeh is no longer actively contributing. I think realistically we will need to re-build webgl from the ground up on a more stable base such as ReGL, but that's obviously a big undertaking, and it will probably not happen for some time (definitely not before 1.0, so not until some time next year). For now, if webgl is not working in your particular usage then I can only suggest falling back to standard (default) canvas. 

Resolving patch:
diff --git a/examples/integration/glyphs/frame_clipping_multi_backend.py b/examples/integration/glyphs/frame_clipping_multi_backend.py
--- a/examples/integration/glyphs/frame_clipping_multi_backend.py
+++ b/examples/integration/glyphs/frame_clipping_multi_backend.py
@@ -3,9 +3,14 @@
 from bokeh.io import save
 
 def make_figure(output_backend):
-    p = figure(plot_width=400, plot_height=400, output_backend=output_backend, title="Backend: %s" % output_backend)
+    p = figure(plot_width=400,
+               plot_height=400,
+               output_backend=output_backend,
+               title="Backend: %s" % output_backend)
+
     p.circle(x=[1, 2, 3], y=[1, 2, 3], radius=0.25, color="blue", alpha=0.5)
     p.annulus(x=[1, 2, 3], y=[1, 2, 3], inner_radius=0.1, outer_radius=0.20, color="orange")
+
     return p
 
 canvas = make_figure("canvas")
diff --git a/examples/integration/glyphs/log_scale_multi_backend.py b/examples/integration/glyphs/log_scale_multi_backend.py
new file mode 100644
--- /dev/null
+++ b/examples/integration/glyphs/log_scale_multi_backend.py
@@ -0,0 +1,36 @@
+import numpy as np
+
+from bokeh.plotting import figure
+from bokeh.layouts import row
+from bokeh.io import save
+
+def make_figure(output_backend):
+    x = np.linspace(0.1, 5, 100)
+
+    p = figure(y_axis_type="log",
+               y_range=(0.001, 10**22),
+               plot_width=400,
+               plot_height=400,
+               toolbar_location=None,
+               output_backend=output_backend,
+               title="Backend: %s" % output_backend)
+
+    p.xaxis.axis_label = 'Domain'
+    p.yaxis.axis_label = 'Values (log scale)'
+
+    p.line(x, np.sqrt(x), line_color="tomato", line_dash="dotdash")
+    p.line(x, x)
+    p.circle(x, x)
+    p.line(x, x**2)
+    p.circle(x, x**2, fill_color=None, line_color="olivedrab")
+    p.line(x, 10**x, line_color="gold", line_width=2)
+    p.line(x, x**x, line_dash="dotted", line_color="indigo", line_width=2)
+    p.line(x, 10**(x**2), line_color="coral", line_dash="dashed", line_width=2)
+
+    return p
+
+canvas = make_figure("canvas")
+webgl  = make_figure("webgl")
+svg    = make_figure("svg")
+
+save(row(canvas, webgl, svg))


Test patch: