import Ġde . ti upe . d 3 Ċ import Ġdev . f rit z 2 . binding . Store Ċ import Ġdev . f rit z 2 . binding . store Of Ċ import Ġmodel . Framework Ċ import Ġorg . w 3 c . dom . events . Event Ċ Ċ val Ġbutton Handler Example 3 : Ġsuspend Ġ( Event ) Ġ-> ĠUnit Ġ= Ġ{ Ġe Ġ: ĠEvent Ġ-> ĊĠĠĠ Ġconsole . log (" P eter Ġw ars ") Ċ } Ċ Ċ fun Ġexample 3 () Ġ{ ĊĠĠĠ Ġval Ġid For Graph ik Ġ= Ġ" be ispiel 2 " ĊĠĠĠ Ġval Ġframework Store Ġ= Ġstore Of ( Framework (" f rit z 2 ")) ĊĠĠĠ Ġval Ġstore : ĠStore < Array < Graph Point >> Ġ= Ġstore Of ( array Of ( Graph Point ( 1 0 , Ġ 2 0 ), ĠGraph Point ( 4 0 , Ġ 9 0 ), ĠGraph Point ( 8 0 , Ġ 5 0 ))) ĊĠĠĠ Ġd 3 . tsv (" be ispiel 3 data . tsv ") ĊĠĠĠĠĠĠĠ Ġ. then { Ġdata : Ġdynamic Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAus de hn ung Ġin ĠX - R icht ung ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpx X Ġ= Ġ 6 0 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAus de hn ung Ġin ĠY - R icht ung ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpx Y Ġ= Ġ 3 0 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSk al ierung so b jekt , Ġdass Ġden ĠDefinitions bere ich Ġauf Ġden ĠW erte bere ich Ġab bil det ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgibt Ġes Ġauch Ġals Ġlog arith mis che Ġund Ġexponent iel le ĠSk al ier ungen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDie Ġextent - F unktion Ġn im mt Ġein ĠArray Ġvon ĠOb jek ten Ġent ge gen Ġund Ġer mit tel t Ġden Ġgr Ã¶ ÃŁ ten Ġund Ġden ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġk le inst en ĠWert Ġinner hal b Ġdie ses ĠArrays . ĠDie Ġbe iden ĠW erte Ġwerden Ġals Ġz we ie lement i ges ĠArray ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠzurÃ¼ck ge geben . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDie Ġan Ġextend ĠÃ¼ber ge bene ĠFunktion Ġist Ġdie ĠZu gr iffs f unktion , Ġsie Ġer mit tel t Ġdie ĠW erte Ġaus ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdem ĠW erte bere ich . ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠF Ã¼r Ġje de ĠSp al te Ġwird Ġein ĠW erte bere ich Ġben Ã¶ t igt . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsc X Ġ= Ġd 3 . scale Linear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. domain ( Ġd 3 . extent ( data , Ġ{ Ġd : Ġdynamic Ġ-> Ġd [" x "] Ġ} Ġ) Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. range ( ĠarrayOf ( 0 , Ġpx X ) Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsc Y 1 Ġ= Ġd 3 . scale Linear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. domain ( Ġd 3 . extent ( data , Ġ{ d : Ġdynamic Ġ-> Ġd [" y 1 "] Ġ} Ġ) Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠW erte bere ich ĠfÃ¼r Ġdie ĠY - Ach se Ġist Ġum ge ke hrt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. range ( ĠarrayOf ( Ġpx Y , Ġ 0 ) Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsc Y 2 Ġ= Ġd 3 . scale Linear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. domain ( Ġd 3 . extent ( data , Ġ{ d : Ġdynamic Ġ-> Ġd [" y 2 "] Ġ} Ġ) Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠW erte bere ich ĠfÃ¼r Ġdie ĠY - Ach se Ġist Ġum ge ke hrt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. range ( ĠarrayOf ( Ġpx Y , Ġ 0 ) Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDas Ġg - Element Ġs org t ĠfÃ¼r Ġeine Ġlog ische ĠGr up pi er ung . ĠSo Ġkann Ġman Ġdie ĠSym bo le Ġder Ġer sten ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDaten men ge Ġvon Ġden en Ġder Ġz we iten ĠDaten men ge Ġunter sche iden . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd 3 . select ( Ġ" svg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append (" g ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. attr ( Ġ" id ", Ġ" ds 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. selectAll ( Ġ" circle " Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. data ( data ). enter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append (" circle ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. attr (" r ", Ġ" 5 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. attr (" fill ", Ġ" blue ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. attr (" cx ", Ġ{ d : Ġdynamic Ġ-> Ġsc X ( d [" x "]) Ġ} Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. attr (" cy ", Ġ{ d : Ġdynamic Ġ-> Ġsc Y 1 ( d [" y 1 "]) Ġ} Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġd 3 . select ( Ġ" svg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append (" g ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. attr ( Ġ" id ", Ġ" ds 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. selectAll ( Ġ" circle " Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. data ( data ). enter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append (" circle ") // . attr (" fill ", Ġ" green ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. attr (" fill ", Ġ" red ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. attr (" r ", Ġ" 5 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. attr (" cx ", Ġ{ d : Ġdynamic Ġ-> Ġsc X ( d [" x "]) Ġ} Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. attr (" cy ", Ġ{ d : Ġdynamic Ġ-> Ġsc Y 2 ( d [" y 2 "]) Ġ} Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDie Ġline - F unktion Ġver bin det Ġz wei Ġn eb ene in ander lie gende ĠDaten p unk te ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠA uch Ġhier Ġwird Ġw ieder Ġeine ĠZu gr iffs f unktion Ġben Ã¶ t igt , Ġdie Ġdie ĠP unk te Ġm ite in ander ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġver bin det . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġline Maker Ġ= Ġd 3 . line () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. x { Ġd : Ġdynamic Ġ-> Ġsc X ( d [" x "] Ġ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. y { Ġd : Ġdynamic Ġ-> Ġsc Y 2 ( d [" y 2 "] Ġ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġd 3 . select ("# ds 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append (" path ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. attr (" fill ", Ġ" none ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. attr (" stroke ", Ġ" cyan ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. attr (" d ", Ġline Maker ( data ) Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġconnect Ġthe Ġdots : ĊĠĠĠĠĠĠĠĠĠĠĠ Ġline Maker . y Ġ{ d : Ġdynamic Ġ-> Ġsc Y 1 ( Ġd [" y 1 "]) } ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġd 3 . select ("# ds 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append (" path ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. attr (" fill ", Ġ" none )") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. attr (" stroke ", Ġ" red ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. attr (" d ", Ġline Maker ( data ) Ġ) ĊĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ }