Hi, making a web app with panel, I found some weird interaction between param and a plot rasterized with datashader.
Here is a toy example :
import holoviews as hv from holoviews.operation.datashader import datashade import panel as pn import param class App_debug(param.Parameterized): button = param.Action(lambda x : x.param.trigger('button')) def __init__(self,**params): super().__init__(**params) self.plot=datashade(hv.Curve([[0,0],[1,1]])) def view(self): return self.plot viewer=App_debug() pn.Row(viewer.view,viewer.Param(viewer.param)).show()
Expected behaviour (here without datashader) :
Since the view() function depends on all the parameters, a clic on the button will reload the view (reset the plot)
With datashader, the button does not reset completly the view. It resets the tools and makes a sort of snapshot of the current state of the curve. Then when using the reset button, the server won’t load the original state, but will set the curve at the state it had when the button was activated.
I think it’s a bug but I don’t know if it comes from panel, param, bokeh or holoviews.