You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Creates a DataFrame that holds categorical paths data. The paths are separated with NaN values for x and y but empty strings for the categorical column.
Datashade the paths using a count_cat aggregator.
With some pretty old versions of HoloViews, Datashader and Pandas, it works.
But it breaks with newer versions with this error ValueError: Dimension name cannot be empty.
Replacing CAT_SEP = '' with CAT_SEP = np.nan makes the code work now. So I wonder, should all the lines contain NaN, i.e. is the original example just bad data? Or is it just a regression?
So the proximate cause here is that while this used to work I actually suspect it didn't work as desired. The problem now is that the individual categories now become the dimensions of the ImageStack while previously they were merely the values of the kdim of the NdOverlay that would hold the individual layers. The real problem/question here is how the empty strings should be treated, specifically HoloViews upgrades all unique non-NaN values along the count_cat dimension to categories and the resulting DataArray will then hold all these categories INCLUDING the empty string category. This doesn't actually cause any rendering artifacts because all the empty string category coordinates are NaNs but apparently we have always created this bogus category in this case.
I suspect we should either automatically convert the empty strings to NaNs so they are not treated as a valid category OR we should issue an exception indicating that '' is not a valid category value.
The code below:
With some pretty old versions of HoloViews, Datashader and Pandas, it works.
But it breaks with newer versions with this error
ValueError: Dimension name cannot be empty
.git bisect
points to Implementation of ImageStack #5751.CAT_SEP = ''
withCAT_SEP = np.nan
makes the code work now. So I wonder, should all the lines containNaN
, i.e. is the original example just bad data? Or is it just a regression?Before:
Traceback now
The text was updated successfully, but these errors were encountered: