@@ -73,6 +73,39 @@ define([
7373 'Categorical' : [ 'stripplot' , 'swarmplot' , 'boxplot' , 'violinplot' , 'pointplot' , 'barplot' ] ,
7474 // 'ETC': [ ]
7575 }
76+
77+ this . legendPosList = [
78+ 'best' , 'upper right' , 'upper left' , 'lower left' , 'lower right' ,
79+ 'center left' , 'center right' , 'lower center' , 'upper center' , 'center'
80+ ] ;
81+
82+ this . markerList = [
83+ // 'custom': { label: 'Custom', value: 'marker' },
84+ { label : ' ' , value : ' ' , title : 'select marker style' } ,
85+ { label : '.' , value : '.' , title : 'point' } ,
86+ { label : ',' , value : ',' , title : 'pixel' } ,
87+ { label : 'o' , value : 'o' , title : 'circle' } ,
88+ { label : '▼' , value : 'v' , title : 'triangle_down' } ,
89+ { label : '▲' , value : '^' , title : 'triangle_up' } ,
90+ { label : '◀' , value : '<' , title : 'triangle_left' } ,
91+ { label : '▶' , value : '>' , title : 'triangle_right' } ,
92+ { label : '┬' , value : '1' , title : 'tri_down' } ,
93+ { label : '┵' , value : '2' , title : 'tri_up' } ,
94+ { label : '┤' , value : '3' , title : 'tri_left' } ,
95+ { label : '├' , value : '4' , title : 'tri_right' } ,
96+ { label : 'octagon' , value : '8' , title : 'octagon' } ,
97+ { label : 'square' , value : 's' , title : 'square' } ,
98+ { label : 'pentagon' , value : 'p' , title : 'pentagon' } ,
99+ { label : 'filled plus' , value : 'P' , title : 'plus (filled)' } ,
100+ { label : 'star' , value : '*' , title : 'star' } ,
101+ { label : 'hexagon1' , value : 'h' , title : 'hexagon1' } ,
102+ { label : 'hexagon2' , value : 'H' , title : 'hexagon2' } ,
103+ { label : 'plus' , value : '+' , title : 'plus' } ,
104+ { label : 'x' , value : 'x' , title : 'x' } ,
105+ { label : 'filled x' , value : 'X' , title : 'x (filled)' } ,
106+ { label : 'diamond' , value : 'D' , title : 'diamond' } ,
107+ { label : 'thin diamond' , value : 'd' , title : 'thin_diamond' }
108+ ]
76109 }
77110
78111 _bindEvent ( ) {
@@ -202,9 +235,10 @@ define([
202235 let varSelector = new VarSelector2 ( this . wrapSelector ( ) , [ 'DataFrame' , 'Series' , 'list' ] ) ;
203236 varSelector . setComponentID ( 'data' ) ;
204237 varSelector . addClass ( 'vp-state vp-input' ) ;
205- varSelector . setValue ( this . state . featureData ) ;
238+ varSelector . setValue ( this . state . data ) ;
206239 varSelector . setSelectEvent ( function ( value , item ) {
207240 $ ( this . wrapSelector ( ) ) . val ( value ) ;
241+ that . state . dtype = item . dtype ;
208242
209243 if ( item . dtype == 'DataFrame' ) {
210244 $ ( that . wrapSelector ( '#x' ) ) . prop ( 'disabled' , false ) ;
@@ -222,12 +256,8 @@ define([
222256 $ ( page ) . find ( '#data' ) . replaceWith ( varSelector . toTagString ( ) ) ;
223257
224258 // legend position
225- let legendPosList = [
226- 'best' , 'upper right' , 'upper left' , 'lower left' , 'lower right' ,
227- 'center left' , 'center right' , 'lower center' , 'upper center' , 'center'
228- ] ;
229259 let legendPosTag = new com_String ( ) ;
230- legendPosList . forEach ( pos => {
260+ this . legendPosList . forEach ( pos => {
231261 let selectedFlag = '' ;
232262 if ( pos == that . state . legendPos ) {
233263 selectedFlag = 'selected' ;
@@ -237,6 +267,18 @@ define([
237267 } ) ;
238268 $ ( page ) . find ( '#legendPos' ) . html ( legendPosTag . toString ( ) ) ;
239269
270+ // marker style
271+ let markerTag = new com_String ( ) ;
272+ this . markerList . forEach ( marker => {
273+ let selectedFlag = '' ;
274+ if ( marker . value == that . state . markerStyle ) {
275+ selectedFlag = 'selected' ;
276+ }
277+ markerTag . appendFormatLine ( '<option value="{0}" title="{1}" {2}>{3}</option>' ,
278+ marker . value , marker . title , selectedFlag , marker . label ) ;
279+ } ) ;
280+ $ ( page ) . find ( '#markerStyle' ) . html ( markerTag . toString ( ) ) ;
281+
240282 // preview sample count
241283 let sampleCountList = [ 30 , 50 , 100 , 300 , 500 , 700 , 1000 ] ;
242284 let sampleCountTag = new com_String ( ) ;
@@ -250,6 +292,36 @@ define([
250292 } ) ;
251293 $ ( page ) . find ( '#sampleCount' ) . html ( sampleCountTag . toString ( ) ) ;
252294
295+ //================================================================
296+ // Load state
297+ //================================================================
298+ Object . keys ( this . state ) . forEach ( key => {
299+ let tag = $ ( page ) . find ( '#' + key ) ;
300+ let tagName = $ ( tag ) . prop ( 'tagName' ) ; // returns with UpperCase
301+ let value = that . state [ key ] ;
302+ if ( value == undefined ) {
303+ return ;
304+ }
305+ switch ( tagName ) {
306+ case 'INPUT' :
307+ let inputType = $ ( tag ) . prop ( 'type' ) ;
308+ if ( inputType == 'text' || inputType == 'number' || inputType == 'hidden' ) {
309+ $ ( tag ) . val ( value ) ;
310+ break ;
311+ }
312+ if ( inputType == 'checkbox' ) {
313+ $ ( tag ) . prop ( 'checked' , value ) ;
314+ break ;
315+ }
316+ break ;
317+ case 'TEXTAREA' :
318+ case 'SELECT' :
319+ default :
320+ $ ( tag ) . val ( value ) ;
321+ break ;
322+ }
323+ } ) ;
324+
253325 return page ;
254326 }
255327
@@ -454,7 +526,25 @@ define([
454526
455527 let chartCode = new com_String ( ) ;
456528
457- let generatedCode = com_generator . vp_codeGenerator ( this , config , state , ( userOption != '' ? ', ' + userOption : '' ) ) ;
529+ let etcOptionCode = [ ]
530+ if ( useMarker == 'True' ) {
531+ // TODO: marker to seaborn argument (ex. marker='+' / markers={'Lunch':'s', 'Dinner':'X'})
532+ etcOptionCode . push ( com_util . formatString ( "marker='{0}'" , markerStyle ) ) ;
533+ }
534+
535+ // add user option
536+ if ( userOption != '' ) {
537+ etcOptionCode . push ( userOption ) ;
538+ }
539+
540+ if ( etcOptionCode . length > 0 ) {
541+ etcOptionCode = [
542+ '' ,
543+ ...etcOptionCode
544+ ]
545+ }
546+
547+ let generatedCode = com_generator . vp_codeGenerator ( this , config , state , etcOptionCode . join ( ', ' ) ) ;
458548
459549 // Info
460550 if ( title && title != '' ) {
@@ -480,9 +570,6 @@ define([
480570 // TODO: grid types
481571 // plt.grid(True, axis='x', color='red', alpha=0.5, linestyle='--')
482572 }
483- if ( useMarker == 'True' ) {
484- // TODO: marker to seaborn argument (ex. marker='+' / markers={'Lunch':'s', 'Dinner':'X'})
485- }
486573 chartCode . append ( 'plt.show()' ) ;
487574
488575 let convertedData = data ;
0 commit comments