packages feed

charter-0.1.1.0: app/Examples/Histogram.hs

{-# LANGUAGE OverloadedStrings #-}
module Examples.Histogram where

import Charts
import Data.Aeson
import qualified Data.Text as T

histogram :: Chart
histogram = buildChart defaultChartOptions Histogram dinoColumns dinoData

dinoColumns :: [Column]
dinoColumns = [StringColumn "Dinosaur", NumberColumn "Length"]

-- Dinosaur histogram data
dinoData :: [[Value]]
dinoData = fmap asData
    [ ("Acrocanthosaurus (top-spined lizard)", 12.2)
    , ("Albertosaurus (Alberta lizard)", 9.1)
    , ("Allosaurus (other lizard)", 12.2)
    , ("Apatosaurus (deceptive lizard)", 22.9)
    , ("Archaeopteryx (ancient wing)", 0.9)
    , ("Argentinosaurus (Argentina lizard)", 36.6)
    , ("Baryonyx (heavy claws)", 9.1)
    , ("Brachiosaurus (arm lizard)", 30.5)
    , ("Ceratosaurus (horned lizard)", 6.1)
    , ("Coelophysis (hollow form)", 2.7)
    , ("Compsognathus (elegant jaw)", 0.9)
    , ("Deinonychus (terrible claw)", 2.7)
    , ("Diplodocus (double beam)", 27.1)
    , ("Dromicelomimus (emu mimic)", 3.4)
    , ("Gallimimus (fowl mimic)", 5.5)
    , ("Mamenchisaurus (Mamenchi lizard)", 21.0)
    , ("Megalosaurus (big lizard)", 7.9)
    , ("Microvenator (small hunter)", 1.2)
    , ("Ornithomimus (bird mimic)", 4.6)
    , ("Oviraptor (egg robber)", 1.5)
    , ("Plateosaurus (flat lizard)", 7.9)
    , ("Sauronithoides (narrow-clawed lizard)", 2.0)
    , ("Seismosaurus (tremor lizard)", 45.7)
    , ("Spinosaurus (spiny lizard)", 12.2)
    , ("Supersaurus (super lizard)", 30.5)
    , ("Tyrannosaurus (tyrant lizard)", 15.2)
    , ("Ultrasaurus (ultra lizard)", 30.5)
    , ("Velociraptor (swift robber)", 1.8)
    ]
  where
    asData :: (T.Text, Float) -> [Value]
    asData (a, b) = [toJSON a, toJSON b]