@@ -54,7 +54,7 @@ define([
54
54
sortBy : 'y' ,
55
55
sortType : '' ,
56
56
sortHue : '' ,
57
- sortHueText : false ,
57
+ sortHueText : true ,
58
58
// axes options
59
59
x_limit_from : '' ,
60
60
x_limit_to : '' ,
@@ -199,10 +199,20 @@ define([
199
199
$ ( that . wrapSelector ( '#stat' ) ) . closest ( '.sb-option' ) . show ( ) ;
200
200
} else if ( chartType == 'barplot' ) {
201
201
$ ( that . wrapSelector ( '#showValues' ) ) . closest ( '.sb-option' ) . show ( ) ;
202
- $ ( that . wrapSelector ( '#sortBy' ) ) . closest ( '.sb-option' ) . show ( ) ;
202
+ if ( that . state . setXY === false ) {
203
+ $ ( that . wrapSelector ( '#sortBy' ) ) . closest ( '.sb-option' ) . show ( ) ;
204
+ if ( that . state . hue !== '' ) {
205
+ $ ( that . wrapSelector ( '#sortHue' ) ) . closest ( '.sb-option' ) . show ( ) ;
206
+ }
207
+ }
203
208
} else if ( chartType == 'countplot' ) {
204
209
$ ( that . wrapSelector ( '#showValues' ) ) . closest ( '.sb-option' ) . show ( ) ;
205
- $ ( that . wrapSelector ( '#sortBy' ) ) . closest ( '.sb-option' ) . show ( ) ;
210
+ if ( that . state . setXY === false ) {
211
+ $ ( that . wrapSelector ( '#sortBy' ) ) . closest ( '.sb-option' ) . show ( ) ;
212
+ if ( that . state . hue !== '' ) {
213
+ $ ( that . wrapSelector ( '#sortHue' ) ) . closest ( '.sb-option' ) . show ( ) ;
214
+ }
215
+ }
206
216
}
207
217
} ) ;
208
218
@@ -243,36 +253,46 @@ define([
243
253
// FIXME: hide sort values for barplot/countplot (as temporary)
244
254
if ( that . state . chartType == 'barplot' || that . state . chartType == 'countplot' ) {
245
255
$ ( that . wrapSelector ( '#sortBy' ) ) . closest ( '.sb-option' ) . hide ( ) ;
256
+ $ ( that . wrapSelector ( '#sortHue' ) ) . closest ( '.sb-option' ) . hide ( ) ;
246
257
}
247
258
248
259
}
249
260
} ) ;
250
261
251
262
// change hue
252
- $ ( document ) . off ( 'change' , this . wrapSelector ( '.vp-state ' ) ) ;
263
+ $ ( document ) . off ( 'change' , this . wrapSelector ( '#hue ' ) ) ;
253
264
$ ( document ) . on ( 'change' , this . wrapSelector ( '#hue' ) , function ( ) {
254
265
let { chartType, data } = that . state ;
255
266
let hue = $ ( this ) . val ( ) ;
256
- if ( chartType == 'barplot' || chartType == 'countplot' ) {
257
- let colDtype = $ ( that . wrapSelector ( '#hue' ) ) . find ( 'option:selected' ) . data ( 'type' ) ;
258
- console . log ( data , hue ) ;
259
- // get result and load column list
260
- vpKernel . getColumnCategory ( data , hue ) . then ( function ( resultObj ) {
261
- let { result } = resultObj ;
262
- try {
263
- var category = JSON . parse ( result ) ;
264
- if ( category && category . length > 0 && colDtype == 'object' ) {
265
- // if it's categorical column and its dtype is object, check 'Text' as default
266
- $ ( that . wrapSelector ( '#sortHueText' ) ) . prop ( 'checked' , true ) ;
267
- } else {
267
+ if ( hue !== '' ) {
268
+ if ( chartType == 'barplot' || chartType == 'countplot' ) {
269
+ let colDtype = $ ( that . wrapSelector ( '#hue' ) ) . find ( 'option:selected' ) . data ( 'type' ) ;
270
+ console . log ( data , hue ) ;
271
+ // get result and load column list
272
+ vpKernel . getColumnCategory ( data , hue ) . then ( function ( resultObj ) {
273
+ let { result } = resultObj ;
274
+ try {
275
+ var category = JSON . parse ( result ) ;
276
+ if ( category && category . length > 0 && colDtype == 'object' ) {
277
+ // if it's categorical column and its dtype is object, check 'Text' as default
278
+ $ ( that . wrapSelector ( '#sortHueText' ) ) . prop ( 'checked' , true ) ;
279
+ that . state . sortHueText = true ;
280
+ } else {
281
+ $ ( that . wrapSelector ( '#sortHueText' ) ) . prop ( 'checked' , false ) ;
282
+ that . state . sortHueText = false ;
283
+ }
284
+ $ ( that . wrapSelector ( '#sortHue' ) ) . replaceWith ( that . templateForHueCondition ( category , colDtype ) ) ;
285
+ } catch {
268
286
$ ( that . wrapSelector ( '#sortHueText' ) ) . prop ( 'checked' , false ) ;
287
+ that . state . sortHueText = false ;
288
+
289
+ $ ( that . wrapSelector ( '#sortHue' ) ) . replaceWith ( that . templateForHueCondition ( [ ] , colDtype ) ) ;
269
290
}
270
- $ ( that . wrapSelector ( '#sortHue' ) ) . replaceWith ( that . templateForHueCondition ( category , colDtype ) ) ;
271
- } catch {
272
- $ ( that . wrapSelector ( '#sortHueText' ) ) . prop ( 'checked' , false ) ;
273
- $ ( that . wrapSelector ( '#sortHue' ) ) . replaceWith ( that . templateForHueCondition ( [ ] , colDtype ) ) ;
274
- }
275
- } ) ;
291
+ } ) ;
292
+ }
293
+ $ ( that . wrapSelector ( '#sortHue' ) ) . closest ( '.sb-option' ) . show ( ) ;
294
+ } else {
295
+ $ ( that . wrapSelector ( '#sortHue' ) ) . closest ( '.sb-option' ) . hide ( ) ;
276
296
}
277
297
} ) ;
278
298
@@ -466,8 +486,20 @@ define([
466
486
$ ( page ) . find ( '#stat' ) . closest ( '.sb-option' ) . show ( ) ;
467
487
} else if ( this . state . chartType == 'barplot' ) {
468
488
$ ( page ) . find ( '#showValues' ) . closest ( '.sb-option' ) . show ( ) ;
489
+ if ( this . state . setXY === false ) {
490
+ $ ( page ) . find ( '#sortBy' ) . closest ( '.sb-option' ) . show ( ) ;
491
+ if ( this . state . hue !== '' ) {
492
+ $ ( page ) . find ( '#sortHue' ) . closest ( '.sb-option' ) . show ( ) ;
493
+ }
494
+ }
469
495
} else if ( this . state . chartType == 'countplot' ) {
470
496
$ ( page ) . find ( '#showValues' ) . closest ( '.sb-option' ) . show ( ) ;
497
+ if ( this . state . setXY === false ) {
498
+ $ ( page ) . find ( '#sortBy' ) . closest ( '.sb-option' ) . show ( ) ;
499
+ if ( this . state . hue !== '' ) {
500
+ $ ( page ) . find ( '#sortHue' ) . closest ( '.sb-option' ) . show ( ) ;
501
+ }
502
+ }
471
503
}
472
504
473
505
//================================================================
@@ -851,7 +883,7 @@ define([
851
883
if ( showValues === true && chartType === 'barplot' ) {
852
884
etcOptionCode . push ( 'ci=None' ) ;
853
885
}
854
- if ( sortType != '' ) {
886
+ if ( setXY === false && sortType != = '' ) {
855
887
let sortCode = '' ;
856
888
let sortTypeStr = ( sortType === 'descending' ? 'ascending=False' : 'ascending=True' ) ;
857
889
let sortX = state . x ;
@@ -860,35 +892,20 @@ define([
860
892
sortX = state . y ;
861
893
sortY = state . x ;
862
894
}
863
- if ( chartType === 'barplot' ) {
864
- if ( setXY === true ) {
865
- // TODO: sort on setXY
866
- // if (hue !== '' && sortHue !== '') {
867
- // sortCode = com_util.formatString("{}.groupby({})[{}].mean().sort_values({}).index")
868
- // } else {
869
- // sortCode = com_util.formatString("pd.concat([{0},{1}], axis=1).groupby({2})[{3}].mean().sort_values({4}).index"
870
- // , sortX, sortY, sortX)
871
- // }
895
+ if ( chartType === 'barplot' && sortX !== '' && sortY !== '' ) {
896
+ if ( hue !== '' && sortHue !== '' ) {
897
+ sortCode = com_util . formatString ( "{0}[{1}[{2}]=={3}].groupby({4})[{5}].mean().sort_values({6}).index"
898
+ , state . data , state . data , state . hue , com_util . convertToStr ( sortHue , sortHueText ) , sortX , sortY , sortTypeStr ) ;
872
899
} else {
873
- if ( hue !== '' && sortHue !== '' ) {
874
- sortCode = com_util . formatString ( "{0}[{1}[{2}]=={3}].groupby({4})[{5}].mean().sort_values({6}).index"
875
- , state . data , state . data , state . hue , com_util . convertToStr ( sortHue , sortHueText ) , sortX , sortY , sortTypeStr ) ;
876
- } else {
877
- sortCode = com_util . formatString ( "{0}.groupby({1})[{2}].mean().sort_values({3}).index" , state . data , sortX , sortY , sortTypeStr ) ;
878
- }
900
+ sortCode = com_util . formatString ( "{0}.groupby({1})[{2}].mean().sort_values({3}).index" , state . data , sortX , sortY , sortTypeStr ) ;
879
901
}
880
- } else if ( chartType === 'countplot' ) {
902
+ } else if ( chartType === 'countplot' && ( sortX !== '' || sortY !== '' ) ) {
881
903
let countVar = sortX === '' ? sortY : sortX ;
882
- if ( setXY === true ) {
883
- // TODO: sort on setXY
884
- ;
904
+ if ( hue !== '' && sortHue !== '' ) {
905
+ sortCode = com_util . formatString ( "{0}[{1}[{2}]=={3}][{4}].value_counts({5}).index"
906
+ , state . data , state . data , state . hue , com_util . convertToStr ( sortHue , sortHueText ) , countVar , sortTypeStr ) ;
885
907
} else {
886
- if ( hue !== '' && sortHue !== '' ) {
887
- sortCode = com_util . formatString ( "{0}[{1}[{2}]=={3}][{4}].value_counts({5}).index"
888
- , state . data , state . data , state . hue , com_util . convertToStr ( sortHue , sortHueText ) , countVar , sortTypeStr ) ;
889
- } else {
890
- sortCode = com_util . formatString ( "{0}[{1}].value_counts({2}).index" , state . data , countVar , sortTypeStr ) ;
891
- }
908
+ sortCode = com_util . formatString ( "{0}[{1}].value_counts({2}).index" , state . data , countVar , sortTypeStr ) ;
892
909
}
893
910
}
894
911
0 commit comments