chart-unit-0.6.0.2: Native haskell charts.

Safe HaskellNone
LanguageHaskell2010

Chart.Bar

Description

bar charts

Synopsis

Documentation

data BarOptions Source #

the usual bar chart eye-candy

data BarValueAcc Source #

whether to separate each Rect grouping or accumulate them

Instances

Show BarValueAcc Source # 
Generic BarValueAcc Source # 

Associated Types

type Rep BarValueAcc :: * -> * #

type Rep BarValueAcc Source # 
type Rep BarValueAcc = D1 * (MetaData "BarValueAcc" "Chart.Bar" "chart-unit-0.6.0.2-3GPWPrcojsWEck6qUEgLqY" False) ((:+:) * (C1 * (MetaCons "BarValueSeparate" PrefixI False) (U1 *)) (C1 * (MetaCons "BarValueAccumulate" PrefixI False) (U1 *)))

data BarData Source #

imagine a data frame ...

Constructors

BarData 

Instances

Show BarData Source # 
Generic BarData Source # 

Associated Types

type Rep BarData :: * -> * #

Methods

from :: BarData -> Rep BarData x #

to :: Rep BarData x -> BarData #

type Rep BarData Source # 
type Rep BarData = D1 * (MetaData "BarData" "Chart.Bar" "chart-unit-0.6.0.2-3GPWPrcojsWEck6qUEgLqY" False) (C1 * (MetaCons "BarData" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "barData") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [[Double]])) ((:*:) * (S1 * (MetaSel (Just Symbol "barRowLabels") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe [Text]))) (S1 * (MetaSel (Just Symbol "barColumnLabels") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe [Text]))))))

barDataLowerUpper :: BarValueAcc -> [[Double]] -> [[(Double, Double)]] Source #

convert data to a range assuming a zero bound a very common but implicit assumption in a lot of bar charts

barRange :: [[Double]] -> Rect Double Source #

calculate the Rect range of a bar data set (imagine a data frame ...)

barChart :: BarOptions -> BarData -> Chart b Source #

A bar chart

barExample :: Chart b
barExample  =
  barChart def (BarData [ys] Nothing Nothing) <>
  hud
  ( #titles .~ [(def,"Bar Chart")] $
    #axes .~
    [ #tickStyle .~
      TickLabels labels' $
      def
    ] $
    #range .~ Just (fold (abs <$> rs)) $
    def)
  where
    labels' = fmap Text.pack <$> take 10 $ (:[]) <$> ['a'..]
    rs = rectBars 0.1 ys
    ys = [1,2,3,5,8,0,-2,11,2,1]