Lev Maximov
                                            Lev Maximov
                                        
                                    @oscargus This effect is the consequence of the fact that the shading algorithm is generic, for arbitrary objects, where the same surface can act as either 'top' or 'bottom' face...
Hmm. No, it is not guaranteed (code from [this](https://matplotlib.org/2.0.2/mpl_examples/mplot3d/surface3d_demo2.py) example):  Left: normal pointing outwards, right: normal pointing inwards.
Ok. Got it: ``` python def f(event): print('hi') b = bm.Button() w = BokehModel(b) b.on_click(f) w.render_bundle = w._model_to_traits(b) b._update_event_callbacks() w ```
This makes the following layout impossible to implement: ``` Bokeh plot1 Ipywidget Slider Bokeh plot2 ``` (or rather a horizontal version of this widget sequence) I realize that I could...
``` python from bokeh.plotting import figure, show, curdoc from bokeh.models import RadioGroup def my_radio_handler(new): print('Radio button option ' + str(new) + ' selected.') radio_group = RadioGroup(labels=["Option 1", "Option 2", "Option...
It turned out that all widgets are affected by this. I've made a quickfix. Plz have a look, @mattpap, maybe you'll find a better solution.
I've found a workaround: `BokehModel(column(p1,p2))` Is it the only possible way to solve it?
I see. Maybe there's an alternative way of linking the plot ranges on the js level without sharing the Range object between the plots? Or it will hit the same...
For me `?flush_cache=true` shows the new variant, but when I remove it I still have the old version.
@xiaobin1124 I've written an article summarizing the differences in interp2d and RectBivariateSpline: [Python Spline Interpolation How-To](https://betterprogramming.pub/python-spline-interpolation-how-to-ef059c214d28?sk=533401d8775bcea491307a386ce36fcc). Hope it'll save you a couple of minutes if you happen to run into...