When you set pn.widgets.Select, hvplot becomes a pn.Row object with the first item being a pn.pane.Holoviews and the second item as a pn.pane.Select. With the type changes in mind, this works:
- split hvplot call to save to two variables
- change source to point to image.object (the actual holoviews object, not panel)
- add select widget to column
import panel as pn
import numpy as np
import xarray as xr
import holoviews as hv
import hvplot.xarray
pn.extension()
ds = xr.tutorial.open_dataset('air_temperature')
image, select = ds.hvplot('lon', 'lat', widgets={'time':pn.widgets.Select})
stream = hv.streams.Tap(source=image.object, x=-88 + 360, y=40)
def timeseries(x, y):
return ds.sel(lon=x, lat=y, method='nearest').hvplot('time')
pn.Column(image, select, pn.bind(timeseries, x=stream.param.x, y=stream.param.y))