@@ -1247,27 +1247,27 @@ def _compute_linkage(self, dataset, dim, vdim):
1247
1247
def _process (self , element , key = None ):
1248
1248
element_kdims = element .kdims
1249
1249
dataset = Dataset (element )
1250
- sort_dims , dendros = [], []
1251
- for i , d in enumerate ( self .p .adjoint_dims ) :
1250
+ sort_dims , dendros = [], {}
1251
+ for d in self .p .adjoint_dims :
1252
1252
ddata = self ._compute_linkage (dataset , d , self .p .main_dim )
1253
1253
order = [ddata ["ivl" ].index (v ) for v in dataset .dimension_values (d )][::- 1 ]
1254
- sort_dim = f"sort { i } "
1254
+ sort_dim = f"sort_ { d } "
1255
1255
dataset = dataset .add_dimension (sort_dim , 0 , order )
1256
1256
sort_dims .append (sort_dim )
1257
1257
1258
1258
# Important the kdims are unique
1259
- dendro = Dendrogram (ddata ["icoord" ], ddata ["dcoord" ], kdims = [f"__dendrogram_x_{ i } " , f"__dendrogram_y_{ i } " ])
1260
- dendros .append (dendro )
1259
+ dendros [d ] = Dendrogram (ddata ["icoord" ], ddata ["dcoord" ], kdims = [f"__dendrogram_x_{ d } " , f"__dendrogram_y_{ d } " ])
1261
1260
1262
1261
vdims = [dataset .get_dimension (self .p .main_dim ), * [vd for vd in dataset .vdims if vd != self .p .main_dim ]]
1263
1262
if type (element ) is not Dataset :
1264
1263
main = element .clone (dataset .sort (sort_dims ).reindex (element_kdims ), vdims = vdims )
1265
1264
else :
1266
1265
main = self .p .main_element (dataset .sort (sort_dims ).reindex (element_kdims [:2 ]), vdims = vdims )
1267
1266
1268
- if i == 0 and str (element_kdims [0 ]) == self .p .adjoint_dims [0 ]:
1269
- main = main << Empty ()
1270
- for dendro in dendros :
1271
- main = main << dendro
1267
+ for dim in map (str , main .kdims [::- 1 ]):
1268
+ if dim not in self .p .adjoint_dims :
1269
+ main = main << Empty ()
1270
+ else :
1271
+ main = main << dendros [dim ]
1272
1272
1273
1273
return main
0 commit comments