Using the most recent version:
hvplot.__version__
'0.8.3'
A variant of code from the user guide:
ds = xr.tutorial.open_dataset('air_temperature').load()
ds.sel(time='2013-01-02').hvplot.quadmesh(
# ds.interactive().sel(time=pnw.DiscreteSlider).hvplot.quadmesh(
'lon', 'lat', 'air', projection=ccrs.Orthographic(-90, 30),
global_extent=True, frame_height=540, cmap='viridis',
coastline=True
)
This works as expected. However when I uncomment the line starting with ds.interactive()
, the code fails with the following stack trace:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[5], line 4
1 ds = xr.tutorial.open_dataset('air_temperature').load()
3 # ds.sel(time='2013-01-02').hvplot.quadmesh(
----> 4 ds.interactive().sel(time=pnw.DiscreteSlider).hvplot.quadmesh(
5 'lon', 'lat', 'air', projection=ccrs.Orthographic(-90, 30),
6 global_extent=True, frame_height=540, cmap='viridis',
7 coastline=True
8 )
File /mnt/sdb1/home/george/miniforge3/envs/icec/lib/python3.10/site-packages/hvplot/interactive.py:820, in _hvplot.__call__(self, _kind, *args, **kwargs)
818 transform = type(transform)(transform, 'hvplot', accessor=True)
819 dmap = 'kind' not in kwargs or isinstance(kwargs['kind'], str)
--> 820 return new._clone(transform(*args, **kwargs), dmap=dmap)
File /mnt/sdb1/home/george/miniforge3/envs/icec/lib/python3.10/site-packages/hvplot/interactive.py:388, in Interactive._clone(self, transform, plot, loc, center, dmap, copy, max_rows, **kwargs)
386 else:
387 kwargs = dict(self._inherit_kwargs, **dict(self._kwargs, **kwargs))
--> 388 return type(self)(self._obj, fn=self._fn, transform=transform, plot=plot, depth=depth,
389 loc=loc, center=center, dmap=dmap, _shared_obj=self._shared_obj,
390 max_rows=max_rows, **kwargs)
File /mnt/sdb1/home/george/miniforge3/envs/icec/lib/python3.10/site-packages/hvplot/interactive.py:282, in Interactive.__init__(self, obj, transform, fn, plot, depth, loc, center, dmap, inherit_kwargs, max_rows, method, _shared_obj, _current, **kwargs)
280 self._current_ = _current
281 else:
--> 282 self._current_ = self._transform.apply(ds, keep_index=True, compute=False)
283 self._init = True
284 self._dirty = False
File /mnt/sdb1/home/george/miniforge3/envs/icec/lib/python3.10/site-packages/holoviews/util/transform.py:774, in dim.apply(self, dataset, flat, expanded, ranges, all_values, keep_index, compute, strict)
772 drange = ranges.get(eldim, {})
773 drange = drange.get('combined', drange)
--> 774 data = self._apply_fn(dataset, data, fn, fn_name, args,
775 kwargs, accessor, drange)
776 drop_index = keep_index_for_compute and not keep_index
777 compute = not compute_for_compute and compute
File /mnt/sdb1/home/george/miniforge3/envs/icec/lib/python3.10/site-packages/holoviews/util/transform.py:672, in dim._apply_fn(self, dataset, data, fn, fn_name, args, kwargs, accessor, drange)
670 data = method(*args, **kwargs)
671 else:
--> 672 raise e
673 else:
674 data = fn(*args, **kwargs)
File /mnt/sdb1/home/george/miniforge3/envs/icec/lib/python3.10/site-packages/holoviews/util/transform.py:666, in dim._apply_fn(self, dataset, data, fn, fn_name, args, kwargs, accessor, drange)
664 else:
665 try:
--> 666 data = method(*args, **kwargs)
667 except Exception as e:
668 if 'axis' in kwargs:
TypeError: hvPlotBase.__call__() got multiple values for argument 'kind'
I did a quick check, indeed there are two kind
values: the variable air
as positional argument and the method used by hvplot: quadmesh
, passed as a keyword.