hvega-0.4.0.0: tests/HyperlinkTests.hs
{-# LANGUAGE OverloadedStrings #-}
--
-- Based on the Elm VegaLite HyperlinkTests.elm as of version 1.12.0
--
module HyperlinkTests (testSpecs) where
import Graphics.Vega.VegaLite hiding (filter, repeat)
testSpecs :: [(String, VegaLite)]
testSpecs = [ ("hyperlink1", hyperlink1)
, ("hyperlink2", hyperlink2)
, ("hyperlink3", hyperlink3)
]
hyperlink1 :: VegaLite
hyperlink1 =
let
dataVals =
dataFromColumns []
. dataColumn "label" (Strings [ "Vega", "Vega-Lite" ])
. dataColumn "url" (Strings [ "https://vega.github.io/vega", "https://vega.github.io/vega-lite" ])
encCircle =
encoding
. position X [ PName "label", PmType Nominal, PAxis [] ]
. size [ MNumber 8000 ]
. color [ MName "label", MmType Nominal, MLegend [] ]
. hyperlink [ HName "url", HmType Nominal ]
encLabel =
encoding
. position X [ PName "label", PmType Nominal, PAxis [] ]
. text [ TName "label", TmType Nominal ]
. color [ MString "white" ]
. size [ MNumber 16 ]
symbolSpec =
asSpec [ mark Circle [ MCursor CPointer ], encCircle [] ]
labelSpec =
asSpec [ mark Text [], encLabel [] ]
in
toVegaLite
[ dataVals [], layer [ symbolSpec, labelSpec ] ]
hyperlink2 :: VegaLite
hyperlink2 =
let
dataVals =
dataFromUrl "https://vega.github.io/vega-lite/data/movies.json" []
enc =
encoding
. position X [ PName "IMDB_Rating", PmType Quantitative ]
. position Y [ PName "Rotten_Tomatoes_Rating", PmType Quantitative ]
. hyperlink [ HString "http://www.imdb.com" ]
in
toVegaLite [ dataVals, mark Point [ MCursor CPointer ], enc [] ]
hyperlink3 :: VegaLite
hyperlink3 =
let
dataVals =
dataFromUrl "https://vega.github.io/vega-lite/data/movies.json" []
enc =
encoding
. position X [ PName "IMDB_Rating", PmType Quantitative ]
. position Y [ PName "Rotten_Tomatoes_Rating", PmType Quantitative ]
. color
[ MDataCondition
[ (Expr "datum.IMDB_Rating*10 > datum.Rotten_Tomatoes_Rating"
, [ MString "steelblue" ])
]
[ MString "red" ]
]
. hyperlink
[ HDataCondition
[ (Expr "datum.IMDB_Rating*10 > datum.Rotten_Tomatoes_Rating"
, [ HString "http://www.imdb.com" ])
]
[ HString "https://www.rottentomatoes.com" ]
]
in
toVegaLite [ dataVals, mark Point [ MCursor CPointer ], enc [] ]