/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 . ĠJetBrains Ġs . r . o . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠMIT Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġfrontend Context Demo . scripts Ċ Ċ import Ġfrontend Context Demo . Script In J fx Context Ċ import Ġjet brains . lets Plot . Stat Ċ import Ġjet brains . lets Plot . geom . geom Contour Ċ import Ġjet brains . lets Plot . geom . geom Contour Filled Ċ import Ġjet brains . lets Plot . geom . geom Path Ċ import Ġjet brains . lets Plot . lets Plot Ċ import Ġjet brains . lets Plot . scale . scale Color Gradient Ċ import Ġjet brains . lets Plot . stat . stat Contour Ċ import Ġjet brains . lets Plot . stat . stat Contour Filled Ċ import Ġkotlin . math . PI Ċ import Ġkotlin . math . sin Ċ Ċ object ĠCont our Ġ{ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ ĠScript In J fx Context . eval (" Contour ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġcontour Data () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġlets Plot ( data ) Ġ{ Ġx Ġ= Ġ" x "; Ġy Ġ= Ġ" y " Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( p Ġ+ Ġgeom Contour ( color Ġ= Ġ" red ") Ġ{ Ġz Ġ= Ġ" z " Ġ}). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( p Ġ+ Ġgeom Contour ( bins Ġ= Ġ 2 0 ) Ġ{ Ġz Ġ= Ġ" z "; Ġcolor Ġ= Ġ".. level .." Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Color Gradient ( low Ġ= Ġ" dark _ green ", Ġhigh Ġ= Ġ" yellow ")). show () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPath Ġ+ Ġcontour Ġstat Ġ==> Ġsame ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( p Ġ+ Ġgeom Path ( stat Ġ= ĠStat . contour ( bins Ġ= Ġ 2 0 ) Ġ{ Ġz Ġ= Ġ" z " Ġ}) Ġ{ Ġcolor Ġ= Ġ".. level .." Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Color Gradient ( low Ġ= Ġ" dark _ green ", Ġhigh Ġ= Ġ" yellow ")). show () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġstat _ contour Ġ==> Ġsame ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( p Ġ+ Ġstat Contour ( bins Ġ= Ġ 2 0 ) Ġ{ Ġz Ġ= Ġ" z "; Ġcolor Ġ= Ġ".. level .." Ġ} Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Color Gradient ( low Ġ= Ġ" dark _ green ", Ġhigh Ġ= Ġ" yellow ")). show () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( p Ġ+ Ġgeom Contour Filled Ġ{ Ġz Ġ= Ġ" z "; Ġfill Ġ= Ġ".. level .." Ġ}). show () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( p Ġ+ Ġstat Contour Filled Ġ{ Ġz Ġ= Ġ" z "; Ġfill Ġ= Ġ".. level .." Ġ}). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcontour Data (): ĠMap < String , ĠList <* >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcount X Ġ= Ġ 5 0 ĊĠĠĠĠĠĠĠ Ġval Ġcount Y Ġ= Ġ 5 0 ĊĊĠĠĠĠĠĠĠ Ġfun Ġz _ fun ( x : ĠDouble , Ġy : ĠDouble ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġz Ġ= Ġsin ( x Ġ* Ġ 3 Ġ* ĠPI Ġ/ Ġcount X ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġz Ġ+= Ġsin ( y Ġ* Ġ 3 Ġ* ĠPI Ġ/ Ġcount Y ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġz Ġ+= Ġx Ġ* Ġ 3 Ġ/ Ġcount X ĊĠĠĠĠĠĠĠĠĠĠĠ Ġz Ġ+= Ġy Ġ* Ġ 5 Ġ/ Ġcount Y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġz ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġx Ġ= ĠArrayList < Double >() ĊĠĠĠĠĠĠĠ Ġval Ġy Ġ= ĠArrayList < Double >() ĊĠĠĠĠĠĠĠ Ġval Ġz Ġ= ĠArrayList < Double >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( row Ġin Ġ 0 Ġuntil Ġcount Y ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( col Ġin Ġ 0 Ġuntil Ġcount X ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx . add ( col . toDouble ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy . add ( row . toDouble ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġz . add ( z _ fun ( col . toDouble (), Ġrow . toDouble ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= ĠHashMap < String , ĠList <* >>() ĊĠĠĠĠĠĠĠ Ġmap [" x "] Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġmap [" y "] Ġ= Ġy ĊĠĠĠĠĠĠĠ Ġmap [" z "] Ġ= Ġz ĊĠĠĠĠĠĠĠ Ġreturn Ġmap ĊĠĠĠ Ġ} Ċ }