Dynamic Widgets with Datashader

Hi,

I am trying to make a plot where I have dynamic selection of time and property using datashader.
The code below returns error for datashade = True. It is important to create widgets for the property and time as I want to use them in other plots that I want to overlay.

import xarray as xr
import numpy as np
import hvplot.xarray #noqa
import panel as pn

n = 200
x = xr.DataArray(np.arange(-n / 2, n / 2), dims = ["x"])
y = xr.DataArray(np.arange(-n / 2, n / 2), dims = ["y"])
t = xr.DataArray(np.arange(0, 1, 0.01), dims = ["t"])

r = (np.cos(2 * np.pi * t / 0.6) * np.sqrt(x**2 + y**2)).rename("r")
z = (np.cos(2 * np.pi * t / 0.6) * np.exp(-2 * r ** 2 / 1e4) * (np.sin(2 * np.pi * y / 50) + np.sin(2 * np.pi * x / 50))).rename("z")

ds = xr.merge([r, z]).assign_coords(x = x, y = y, t = t)

v_options = pn.widgets.Select(options = list(ds))
t_slider = pn.widgets.DiscreteSlider(name = 'Time', options = ds.t.values.tolist())

plot = ds.interactive()[v_options].sel(t = t_slider).hvplot(x = "x", y = "y", datashade = False)

Any idea on how to do that?
My plan is to use v_options and t_slider in other xarray.dataset objects to create other plots to overlay. It is important to use datashader because the data is too big and I want it to be interactively changing.

Error message:

ERROR:tornado.application:Exception in callback functools.partial(<bound method IOLoop._discard_future_result of <tornado.platform.asyncio.AsyncIOMainLoop object at 0x7f4c6a86dd60>>, <Task finished name='Task-6291' coro=<WSHandler._async_open() done, defined at /home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/bokeh/server/views/ws.py:181> exception=Exception('Nesting a DynamicMap inside a DynamicMap is not supported. Ensure that the DynamicMap callback returns an Element or (Nd)Overlay. If you have applied an operation ensure it is not dynamic by setting dynamic=False.')>)
Traceback (most recent call last):
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/tornado/ioloop.py", line 740, in _run_callback
    ret = callback()
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/tornado/ioloop.py", line 764, in _discard_future_result
    future.result()
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/bokeh/server/views/ws.py", line 202, in _async_open
    await self.application_context.create_session_if_needed(session_id, self.request, token)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/bokeh/server/contexts.py", line 240, in create_session_if_needed
    self._application.initialize_document(doc)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/panel/io/server.py", line 409, in initialize_document
    super().initialize_document(doc)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/bokeh/application/application.py", line 190, in initialize_document
    h.modify_document(doc)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/bokeh/application/handlers/function.py", line 140, in modify_document
    self._func(doc)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/panel/io/server.py", line 152, in _eval_panel
    doc = as_panel(panel)._modify_doc(server_id, title, doc, location)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/panel/viewable.py", line 315, in _modify_doc
    return self.server_doc(doc, title, location) # type: ignore
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/panel/viewable.py", line 1024, in server_doc
    model = self.get_root(doc)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/panel/pane/base.py", line 425, in get_root
    root_view, root = self._get_root_model(doc, comm, preprocess)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/panel/pane/base.py", line 350, in _get_root_model
    root = self.layout._get_model(doc, comm=comm)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/panel/layout/base.py", line 174, in _get_model
    objects, _ = self._get_objects(model, [], doc, root, comm)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/panel/layout/base.py", line 156, in _get_objects
    child = pane._get_model(doc, root, model, comm)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/panel/pane/holoviews.py", line 721, in _get_model
    model = self._layout_panel._get_model(doc, root, parent, comm)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/panel/layout/base.py", line 174, in _get_model
    objects, _ = self._get_objects(model, [], doc, root, comm)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/panel/layout/base.py", line 156, in _get_objects
    child = pane._get_model(doc, root, model, comm)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/panel/layout/base.py", line 174, in _get_model
    objects, _ = self._get_objects(model, [], doc, root, comm)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/panel/layout/base.py", line 156, in _get_objects
    child = pane._get_model(doc, root, model, comm)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/panel/pane/holoviews.py", line 411, in _get_model
    plot = self._render(doc, comm, root)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/panel/pane/holoviews.py", line 506, in _render
    return renderer.get_plot(self.object, **kwargs)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/holoviews/plotting/bokeh/renderer.py", line 68, in get_plot
    plot = super().get_plot(obj, doc, renderer, **kwargs)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/holoviews/plotting/renderer.py", line 226, in get_plot
    obj = collate(obj)
  File "/home/iury/miniforge3/envs/coringa/lib/python3.9/site-packages/holoviews/plotting/util.py", line 78, in collate
    raise Exception("Nesting a %s inside a DynamicMap is not "
Exception: Nesting a DynamicMap inside a DynamicMap is not supported. Ensure that the DynamicMap callback returns an Element or (Nd)Overlay. If you have applied an operation ensure it is not dynamic by setting dynamic=False.