package Ġscatter Ċ Ċ import Ġhe p . data forge . meta . invoke Ċ import Ġhe p . data forge . values . Value Ċ import Ġk science . plot ly . Plot ly Ċ import Ġk science . plot ly . make File Ċ import Ġk science . plot ly . models .* ĊĊ Ċ /** Ċ Ġ* Ġ- ĠStyled Ġscatter Ġplot Ċ Ġ* Ġ- ĠUse Ġarray Ġof Ġtraces Ċ Ġ* Ġ- ĠStyle Ġannotations Ċ Ġ*/ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġx Data Ġ= ĠlistOf ( 2 0 0 1 , Ġ 2 0 0 2 , Ġ 2 0 0 3 , Ġ 2 0 0 4 , Ġ 2 0 0 5 , Ġ 2 0 0 6 , Ġ 2 0 0 7 , Ġ 2 0 0 8 , Ġ 2 0 0 9 , Ġ 2 0 1 0 , Ġ 2 0 1 1 , Ġ 2 0 1 3 ) ĊĠĠĠ Ġval Ġy Data Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( 7 4 , Ġ 8 2 , Ġ 8 0 , Ġ 7 4 , Ġ 7 3 , Ġ 7 2 , Ġ 7 4 , Ġ 7 0 , Ġ 7 0 , Ġ 6 6 , Ġ 6 6 , Ġ 6 9 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( 4 5 , Ġ 4 2 , Ġ 5 0 , Ġ 4 6 , Ġ 3 6 , Ġ 3 6 , Ġ 3 4 , Ġ 3 5 , Ġ 3 2 , Ġ 3 1 , Ġ 3 1 , Ġ 2 8 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( 1 3 , Ġ 1 4 , Ġ 2 0 , Ġ 2 4 , Ġ 2 0 , Ġ 2 4 , Ġ 2 4 , Ġ 4 0 , Ġ 3 5 , Ġ 4 1 , Ġ 4 3 , Ġ 5 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( 1 8 , Ġ 2 1 , Ġ 1 8 , Ġ 2 1 , Ġ 1 6 , Ġ 1 4 , Ġ 1 3 , Ġ 1 8 , Ġ 1 7 , Ġ 1 6 , Ġ 1 9 , Ġ 2 3 )) ĊĠĠĠ Ġval Ġcolors Ġ= ĠlistOf (" rgba ( 6 7 , Ġ 6 7 , Ġ 6 7 , Ġ 1 )", Ġ" rgba ( 1 1 5 , Ġ 1 1 5 , Ġ 1 1 5 , Ġ 1 )", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" rgba ( 4 9 , Ġ 1 3 0 , Ġ 1 8 9 , Ġ 1 )", Ġ" rgba ( 1 8 9 , Ġ 1 8 9 , Ġ 1 8 9 , Ġ 1 )") ĊĠĠĠ Ġval Ġline Size Ġ= ĠlistOf ( 2 , Ġ 2 , Ġ 4 , Ġ 2 ) ĊĠĠĠ Ġval Ġlabels Ġ= ĠlistOf (" Tele vision ", Ġ" New sp aper ", Ġ" Internet ", Ġ" Radio ") ĊĊĠĠĠ Ġval Ġtraces List Ġ= Ġmutable ListOf < Trace >() ĊĠĠĠ Ġfor Ġ( i Ġin Ġy Data . indices ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠS cat ter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx . set ( x Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġy . set ( y Data [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor ( colors [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġline Size [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtraces List . add ( result ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult 2 Ġ= ĠS cat ter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx . set ( listOf ( x Data [ 0 ], Ġx Data [ 1 1 ])) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġy . set ( listOf ( y Data [ i ][ 0 ], Ġy Data [ i ][ 1 1 ])) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmode Ġ= ĠS cat ter Mode . markers ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarker Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor ( colors [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= Ġ 1 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtraces List . add ( result 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġannotations List Ġ= Ġmutable ListOf < Text >() ĊĠĠĠ Ġval Ġtext 1 Ġ= ĠText Ġ{ ĊĠĠĠĠĠĠĠ Ġx ref Ġ= Ġ" paper " ĊĠĠĠĠĠĠĠ Ġy ref Ġ= Ġ" paper " ĊĠĠĠĠĠĠĠ Ġx Ġ= ĠValue . of ( 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġy Ġ= ĠValue . of ( 1 . 0 5 ) ĊĠĠĠĠĠĠĠ Ġx anchor Ġ= ĠX Anchor . left ĊĠĠĠĠĠĠĠ Ġy anchor Ġ= ĠY Anchor . bottom ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Main ĠSource Ġfor ĠNews " ĊĠĠĠĠĠĠĠ Ġfont Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfamily Ġ= Ġ" Arial " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= Ġ 3 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor (" rgb ( 3 7 , Ġ 3 7 , Ġ 3 7 )") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshow arrow Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĠĠĠ Ġannotations List . add ( text 1 ) ĊĠĠĠ Ġval Ġtext 2 Ġ= ĠText Ġ{ ĊĠĠĠĠĠĠĠ Ġx ref Ġ= Ġ" paper " ĊĠĠĠĠĠĠĠ Ġy ref Ġ= Ġ" paper " ĊĠĠĠĠĠĠĠ Ġx Ġ= ĠValue . of ( 0 . 5 ) ĊĠĠĠĠĠĠĠ Ġy Ġ= ĠValue . of (- 0 . 1 ) ĊĠĠĠĠĠĠĠ Ġx anchor Ġ= ĠX Anchor . center ĊĠĠĠĠĠĠĠ Ġy anchor Ġ= ĠY Anchor . top ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Source : ĠP ew ĠResearch ĠCenter Ġ& ĠStory tell ing Ġwith Ġdata " ĊĠĠĠĠĠĠĠ Ġshow arrow Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġfont Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfamily Ġ= Ġ" Arial " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= Ġ 1 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor (" rgb ( 1 5 0 , Ġ 1 5 0 , Ġ 1 5 0 )") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġannotations List . add ( text 2 ) ĊĠĠĠ Ġfor Ġ( i Ġin Ġy Data . indices ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠText Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx ref Ġ= Ġ" paper " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ= ĠValue . of ( 0 . 0 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ= ĠValue . of ( y Data [ i ][ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx anchor Ġ= ĠX Anchor . right ĊĠĠĠĠĠĠĠĠĠĠĠ Ġy anchor Ġ= ĠY Anchor . middle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġlabels [ i ] Ġ+ Ġ" Ġ" Ġ+ Ġy Data [ i ][ 0 ] Ġ+ Ġ"% " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow arrow Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfont Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfamily Ġ= Ġ" Arial " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= Ġ 1 6 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor (" black ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġannotations List . add ( result ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult 2 Ġ= ĠText Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx ref Ġ= Ġ" paper " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ= ĠValue . of ( 0 . 9 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ= ĠValue . of ( y Data [ i ][ 1 1 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx anchor Ġ= ĠX Anchor . left ĊĠĠĠĠĠĠĠĠĠĠĠ Ġy anchor Ġ= ĠY Anchor . middle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġy Data [ i ][ 1 1 ]. toString () Ġ+ Ġ"% " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfont Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfamily Ġ= Ġ" Arial " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= Ġ 1 6 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor (" black ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow arrow Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġannotations List . add ( result 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġplot Ġ= ĠPlot ly . plot Ġ{ ĊĠĠĠĠĠĠĠ Ġtraces ( traces List ) ĊĊĠĠĠĠĠĠĠ Ġlayout Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow legend Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= Ġ 6 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ 6 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx axis Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow line Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow grid Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow tick labels Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline color (" rgb ( 2 0 4 , Ġ 2 0 4 , Ġ 2 0 4 )") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlinewidth Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaut ot ick Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġticks Ġ= ĠT icks . outside ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtick color (" rgb ( 2 0 4 , Ġ 2 0 4 , Ġ 2 0 4 )") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtick width Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtick len Ġ= Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtick font Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfamily Ġ= Ġ" Arial " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= Ġ 1 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor (" rgb ( 8 2 , Ġ 8 2 , Ġ 8 2 )") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġy axis Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow grid Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġz er oline Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow line Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow tick labels Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġautos ize Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmargin Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauto expand Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr Ġ= Ġ 2 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotations Ġ= Ġannotations List ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġplot . make File () Ċ }