package Ġk science . plot ly . models Ċ Ċ import Ġhe p . data forge . meta .* Ċ import Ġkotlin . js . Js Name Ċ Ċ public Ġenum Ġclass ĠS cat ter Mode Ġ{ ĊĠĠĠ Ġlines , ĊĠĠĠ Ġmarkers , ĊĠĠĠ Ġtext , ĊĠĠĠ Ġnone , ĊĊĠĠĠ Ġ@ Js Name (" lines Markers ") ĊĠĠĠ Ġ` lines + markers `, ĊĊĠĠĠ Ġ@ Js Name (" lines Text ") ĊĠĠĠ Ġ` lines + text `, ĊĊĠĠĠ Ġ@ Js Name (" markers Text ") ĊĠĠĠ Ġ` markers + text `, ĊĊĠĠĠ Ġ@ Js Name (" lines Markers Text ") ĊĠĠĠ Ġ` lines + markers + text ` Ċ } Ċ Ċ public Ġenum Ġclass ĠGroup Norm Ġ{ ĊĠĠĠ Ġ@ Js Name (" empty ") ĊĠĠĠ Ġ` Ġ`, ĊĠĠĠ Ġfraction , ĊĠĠĠ Ġpercent Ċ } Ċ Ċ public Ġenum Ġclass ĠFill Type Ġ{ ĊĠĠĠ Ġnone , ĊĠĠĠ Ġto zero y , ĊĠĠĠ Ġto zer ox , ĊĠĠĠ Ġton ext y , ĊĠĠĠ Ġton ext x , ĊĠĠĠ Ġto self , ĊĠĠĠ Ġton ext Ċ } Ċ Ċ public Ġenum Ġclass ĠS cat ter Hover on Ġ{ ĊĠĠĠ Ġpoints , ĊĠĠĠ Ġfill s , ĊĊĠĠĠ Ġ@ Js Name (" points And Fill s ") ĊĠĠĠ Ġ` points + fill s ` Ċ } Ċ Ċ public Ġenum Ġclass ĠStack G aps Ġ{ ĊĠĠĠ Ġ@ Js Name (" infer Zero ") ĊĠĠĠ Ġ` infer Ġzero `, ĊĠĠĠ Ġinterpolate Ċ } Ċ Ċ public Ġopen Ġclass ĠS cat ter Ġ: ĠTrace (), ĠSelected Points Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtype Ġ= ĠTrace Type . scatter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFlag list Ġstring . ĠAny Ġcombination Ġof Ġ" lines ", Ġ" markers ", Ġ" text " ĊĠĠĠĠ Ġ* Ġjoined Ġwith Ġa Ġ" +" ĠOR Ġ" none ". ĠDetermines Ġthe Ġdrawing Ġmode Ġfor ĊĠĠĠĠ Ġ* Ġthis Ġscatter Ġtrace . ĠIf Ġthe Ġprovided Ġ` mode ` Ġincludes Ġ" text " Ġthen ĊĠĠĠĠ Ġ* Ġthe Ġ` text ` Ġelements Ġappear Ġat Ġthe Ġcoordinates . ĠOtherwise , ĊĠĠĠĠ Ġ* Ġthe Ġ` text ` Ġelements Ġappear Ġon Ġhover . ĊĠĠĠĠ Ġ* ĠDefault : Ġlines . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġvar Ġmode : ĠS cat ter Mode Ġby Ġenum ( Scatter Mode . lines ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOnly Ġrelevant Ġwhen Ġ` stack group ` Ġis Ġused , Ġand Ġonly Ġthe Ġfirst Ġ` group norm ` Ġfound Ġin Ġthe Ġ` stack group ` Ġwill Ġbe Ġused Ġ- ĊĠĠĠĠ Ġ* Ġincluding Ġif Ġ` visible ` Ġis Ġ" legend only " Ġbut Ġnot Ġif Ġit Ġis Ġ` false `. ĠSets Ġthe Ġnormalization Ġfor Ġthe Ġsum Ġof ĊĠĠĠĠ Ġ* Ġthis Ġ` stack group `. ĠWith Ġ" fraction ", Ġthe Ġvalue Ġof Ġeach Ġtrace Ġat Ġeach Ġlocation Ġis Ġdivided Ġby Ġthe Ġsum Ġof Ġall ĊĠĠĠĠ Ġ* Ġtrace Ġvalues Ġat Ġthat Ġlocation . Ġ" percent " Ġis Ġthe Ġsame Ġbut Ġmultip lied Ġby Ġ 1 0 0 Ġto Ġshow Ġpercent ages . ĠIf Ġthere Ġare ĊĠĠĠĠ Ġ* Ġmultiple Ġsub plots , Ġor Ġmultiple Ġ` stack group ` s Ġon Ġone Ġsub plot , Ġeach Ġwill Ġbe Ġnormalized Ġwithin Ġits Ġown Ġset . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġvar Ġgroup norm : ĠGroup Norm Ġby Ġenum ( Group Norm .` Ġ` ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġseveral Ġscatter Ġtraces Ġ( on Ġthe Ġsame Ġsub plot ) Ġto Ġthe Ġsame Ġstack group Ġin Ġorder Ġto Ġadd Ġtheir ĊĠĠĠĠ Ġ* Ġy Ġvalues Ġ( or Ġtheir Ġx Ġvalues Ġif Ġ` orientation ` Ġis Ġ" h "). ĠIf Ġblank Ġor Ġomitted Ġthis Ġtrace Ġwill Ġnot Ġbe Ġstack ed . ĊĠĠĠĠ Ġ* ĠStack ing Ġalso Ġturns Ġ` fill ` Ġon Ġby Ġdefault , Ġusing Ġ" ton ext y " Ġ(" ton ext x ") Ġif Ġ` orientation ` Ġis Ġ" h " Ġ(" v ") ĊĠĠĠĠ Ġ* Ġand Ġsets Ġthe Ġdefault Ġ` mode ` Ġto Ġ" lines " Ġir res pective Ġof Ġpoint Ġcount . ĠYou Ġcan Ġonly Ġstack Ġon Ġa Ġnumeric ĊĠĠĠĠ Ġ* Ġ( linear Ġor Ġlog ) Ġaxis . ĠTr aces Ġin Ġa Ġ` stack group ` Ġwill Ġonly Ġfill Ġto Ġ( or Ġbe Ġfilled Ġto ) Ġother Ġtraces Ġin Ġthe ĊĠĠĠĠ Ġ* Ġsame Ġgroup . ĠWith Ġmultiple Ġ` stack group ` s Ġor Ġsome Ġtraces Ġstack ed Ġand Ġsome Ġnot , Ġif Ġfill - linked Ġtraces Ġare ĊĠĠĠĠ Ġ* Ġnot Ġalready Ġconsecutive , Ġthe Ġlater Ġones Ġwill Ġbe Ġpushed Ġdown Ġin Ġthe Ġdrawing Ġorder . ĊĠĠĠĠ Ġ* ĠDefault : Ġ"". ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġvar Ġstack group : ĠString ? Ġby Ġstring () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠArray Ġcontaining Ġinteger Ġindices Ġof Ġselected Ġpoints . ĠHas Ġan Ġeffect Ġonly Ġfor Ġtraces Ġthat Ġsupport Ġselections . ĊĠĠĠĠ Ġ* ĠNote Ġthat Ġan Ġempty Ġarray Ġmeans Ġan Ġempty Ġselection Ġwhere Ġthe Ġ` un selected ` Ġare Ġturned Ġon Ġfor Ġall Ġpoints , Ġwhereas , ĊĠĠĠĠ Ġ* Ġany Ġother Ġnon - array Ġvalues Ġmeans Ġno Ġselection Ġall Ġwhere Ġthe Ġ` selected ` Ġand Ġ` un selected ` Ġstyles Ġhave Ġno Ġeffect . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġvar Ġselected points : ĠList < Number > Ġby Ġnumber List () ĊĊĠĠĠ Ġoverride Ġvar Ġselected : ĠSelect Points Ġby Ġspec ( Select Points ) ĊĊĠĠĠ Ġoverride Ġvar Ġun selected : ĠSelect Points Ġby Ġspec ( Select Points ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġarea Ġto Ġfill Ġwith Ġa Ġsolid Ġcolor . ĠDefaults Ġto Ġ" none " Ġunless Ġthis Ġtrace Ġis Ġstack ed , Ġthen ĊĠĠĠĠ Ġ* Ġit Ġgets Ġ" ton ext y " Ġ(" ton ext x ") Ġif Ġ` orientation ` Ġis Ġ" v " Ġ(" h ") ĠUse Ġwith Ġ` fill color ` Ġif Ġnot Ġ" none ". ĊĠĠĠĠ Ġ* Ġ" to zer ox " Ġand Ġ" to zero y " Ġfill Ġto Ġx = 0 Ġand Ġy = 0 Ġrespectively . Ġ" ton ext x " Ġand Ġ" ton ext y " Ġfill Ġbetween ĊĠĠĠĠ Ġ* Ġthe Ġendpoints Ġof Ġthis Ġtrace Ġand Ġthe Ġendpoints Ġof Ġthe Ġtrace Ġbefore Ġit , Ġconnecting Ġthose Ġendpoints ĊĠĠĠĠ Ġ* Ġwith Ġstraight Ġlines Ġ( to Ġmake Ġa Ġstack ed Ġarea Ġgraph ); Ġif Ġthere Ġis Ġno Ġtrace Ġbefore Ġit , Ġthey Ġbehave ĊĠĠĠĠ Ġ* Ġlike Ġ" to zer ox " Ġand Ġ" to zero y ". Ġ" to self " Ġconnects Ġthe Ġendpoints Ġof Ġthe Ġtrace Ġ( or Ġeach Ġsegment ĊĠĠĠĠ Ġ* Ġof Ġthe Ġtrace Ġif Ġit Ġhas Ġg aps ) Ġinto Ġa Ġclosed Ġshape . Ġ" ton ext " Ġfill s Ġthe Ġspace Ġbetween Ġtwo Ġtraces ĊĠĠĠĠ Ġ* Ġif Ġone Ġcompletely Ġen clo ses Ġthe Ġother Ġ( eg Ġconsecutive Ġcontour Ġlines ), Ġand Ġbehaves Ġlike Ġ" to self " ĊĠĠĠĠ Ġ* Ġif Ġthere Ġis Ġno Ġtrace Ġbefore Ġit . Ġ" ton ext " Ġshould Ġnot Ġbe Ġused Ġif Ġone Ġtrace Ġdoes Ġnot Ġen close Ġthe Ġother . ĊĠĠĠĠ Ġ* ĠTr aces Ġin Ġa Ġ` stack group ` Ġwill Ġonly Ġfill Ġto Ġ( or Ġbe Ġfilled Ġto ) Ġother Ġtraces Ġin Ġthe Ġsame Ġgroup . ĊĠĠĠĠ Ġ* ĠWith Ġmultiple Ġ` stack group ` s Ġor Ġsome Ġtraces Ġstack ed Ġand Ġsome Ġnot , Ġif Ġfill - linked Ġtraces ĊĠĠĠĠ Ġ* Ġare Ġnot Ġalready Ġconsecutive , Ġthe Ġlater Ġones Ġwill Ġbe Ġpushed Ġdown Ġin Ġthe Ġdrawing Ġorder . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġvar Ġfill : ĠFill Type Ġby Ġenum ( Fill Type . none ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDo Ġthe Ġhover Ġeffects Ġhighlight Ġindividual Ġpoints Ġ( markers Ġor Ġline Ġpoints ) Ġor Ġdo Ġthey ĊĠĠĠĠ Ġ* Ġhighlight Ġfilled Ġregions ? ĠIf Ġthe Ġfill Ġis Ġ" to self " Ġor Ġ" ton ext " Ġand Ġthere Ġare Ġno Ġmarkers Ġor Ġtext , ĊĠĠĠĠ Ġ* Ġthen Ġthe Ġdefault Ġis Ġ" fill s ", Ġotherwise Ġit Ġis Ġ" points ". ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġvar Ġhover on : ĠS cat ter Hover on Ġby Ġenum ( Scatter Hover on . points ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOnly Ġrelevant Ġwhen Ġ` stack group ` Ġis Ġused , Ġand Ġonly Ġthe Ġfirst Ġ` stack g aps ` Ġfound Ġin Ġthe Ġ` stack group ` ĊĠĠĠĠ Ġ* Ġwill Ġbe Ġused Ġ- Ġincluding Ġif Ġ` visible ` Ġis Ġ" legend only " Ġbut Ġnot Ġif Ġit Ġis Ġ` false `. ĠDetermines Ġhow ĊĠĠĠĠ Ġ* Ġwe Ġhandle Ġlocations Ġat Ġwhich Ġother Ġtraces Ġin Ġthis Ġgroup Ġhave Ġdata Ġbut Ġthis Ġone Ġdoes Ġnot . ĊĠĠĠĠ Ġ* ĠWith Ġ" infer Ġzero " Ġwe Ġinsert Ġa Ġzero Ġat Ġthese Ġlocations . ĠWith Ġ" interpolate " Ġwe Ġlinear ly Ġinterpolate ĊĠĠĠĠ Ġ* Ġbetween Ġexisting Ġvalues , Ġand Ġex trap olate Ġa Ġconstant Ġbeyond Ġthe Ġexisting Ġvalues . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġvar Ġstack g aps : ĠStack G aps Ġby Ġenum ( Stack G aps .` infer Ġzero `) ĊĊĠĠĠ Ġpublic Ġfun Ġselected ( block : ĠSelect Points . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġselected Ġ= ĠSelect Points ( block ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġun selected ( block : ĠSelect Points . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġun selected Ġ= ĠSelect Points ( block ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġcompanion Ġobject Ġ: ĠScheme Spec < Scatter >( :: Scatter ) Ċ } Ċ Ċ public Ġclass ĠS cat ter GL Ġ: ĠS cat ter () Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtype Ġ= ĠTrace Type . scatter gl ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġcompanion Ġobject Ġ: ĠScheme Spec < Scatter GL >( :: Scatter GL ) Ċ }