| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Chart.Bar
Description
Bar charts
Synopsis
- data BarOptions = BarOptions {}
- defaultBarOptions :: BarOptions
- data BarData = BarData {
- barData :: [[Double]]
- barRowLabels :: [Text]
- barColumnLabels :: [Text]
- barRange :: [[Double]] -> Rect Double
- bars :: BarOptions -> BarData -> [Chart]
- barChart :: BarOptions -> BarData -> ChartOptions
- barRects :: BarOptions -> [[Double]] -> [[Rect Double]]
- barTextCharts :: BarOptions -> BarData -> [Chart]
Documentation
data BarOptions Source #
Typical bar chart options.
The internal model for a bar chart (across the x-axis for a vertical bar chart) is:
- half the outerGap at the start and the end.
- each row collection of bars, including the outerGap and innerGaps has a value of 1.
- the entire x range of the chart isequal to the number of rows in the bar data.
- The value of inner and outer gaps are relative to this model.
>>>let barDataExample = BarData [[1, 2, 3, 5, 8, 0, -2, 11, 2, 1], [1 .. 10]] (("row " <>) . pack . show <$> [1 .. 11]) (("column " <>) . pack . show <$> [1 .. 2])>>>let barExample = barChart defaultBarOptions barDataExample
writeChartOptions "other/bar.svg" barExample
Constructors
| BarOptions | |
Fields
| |
Instances
defaultBarOptions :: BarOptions Source #
The official bar options.
Two dimensional data, maybe with row and column labels.
Constructors
| BarData | |
Fields
| |
Instances
| Data BarData Source # | |||||
Defined in Chart.Bar Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> BarData -> c BarData # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c BarData # toConstr :: BarData -> Constr # dataTypeOf :: BarData -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c BarData) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c BarData) # gmapT :: (forall b. Data b => b -> b) -> BarData -> BarData # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> BarData -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> BarData -> r # gmapQ :: (forall d. Data d => d -> u) -> BarData -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> BarData -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> BarData -> m BarData # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> BarData -> m BarData # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> BarData -> m BarData # | |||||
| Generic BarData Source # | |||||
Defined in Chart.Bar Associated Types
| |||||
| Show BarData Source # | |||||
| Eq BarData Source # | |||||
| type Rep BarData Source # | |||||
Defined in Chart.Bar type Rep BarData = D1 ('MetaData "BarData" "Chart.Bar" "chart-svg-0.8.3.2-HqC5koQF24PBkrFlIP6qwR" 'False) (C1 ('MetaCons "BarData" 'PrefixI 'True) (S1 ('MetaSel ('Just "barData") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [[Double]]) :*: (S1 ('MetaSel ('Just "barRowLabels") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Text]) :*: S1 ('MetaSel ('Just "barColumnLabels") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Text])))) | |||||
barRange :: [[Double]] -> Rect Double Source #
Calculate the Rect range of a bar data set.
>>>barRange [[1,2],[2,3]]Rect 0.0 2.0 0.0 3.0
>>>barRange [[]]Rect (-0.5) 0.5 (-0.5) 0.5
bars :: BarOptions -> BarData -> [Chart] Source #
A bar chart without hud trimmings.
>>>bars defaultBarOptions (BarData [[1,2],[2,3]] [] [])[Chart {chartStyle = Style {size = 6.0e-2, borderSize = 5.0e-3, color = Colour 0.02 0.29 0.48 0.70, borderColor = Colour 0.02 0.29 0.48 1.00, scaleP = NoScaleP, textAnchor = AnchorMiddle, rotation = Nothing, translate = Nothing, escapeText = EscapeText, frame = Nothing, lineCap = Nothing, lineJoin = Nothing, dasharray = Nothing, dashoffset = Nothing, hsize = 0.6, vsize = 1.1, vshift = -0.25, glyphShape = SquareGlyph}, chartData = RectData [Rect (-0.5) (-0.26315789473684215) (-0.5) (-0.16666666666666669),Rect 2.631578947368418e-2 0.26315789473684204 (-0.5) 0.16666666666666663]},Chart {chartStyle = Style {size = 6.0e-2, borderSize = 5.0e-3, color = Colour 0.66 0.07 0.55 0.70, borderColor = Colour 0.66 0.07 0.55 1.00, scaleP = NoScaleP, textAnchor = AnchorMiddle, rotation = Nothing, translate = Nothing, escapeText = EscapeText, frame = Nothing, lineCap = Nothing, lineJoin = Nothing, dasharray = Nothing, dashoffset = Nothing, hsize = 0.6, vsize = 1.1, vshift = -0.25, glyphShape = SquareGlyph}, chartData = RectData [Rect (-0.26315789473684215) (-2.6315789473684292e-2) (-0.5) 0.16666666666666663,Rect 0.26315789473684204 0.4999999999999999 (-0.5) 0.5]}]
>>>bars defaultBarOptions (BarData [[]] [] [])[]
barChart :: BarOptions -> BarData -> ChartOptions Source #
A bar chart.
>>>emptyBar = barChart defaultBarOptions (BarData [] [] [])>>>foldOf (#chartTree % charts') emptyBar[]
barRects :: BarOptions -> [[Double]] -> [[Rect Double]] Source #
Make bars from the double list values, normalizing to one :: Rect.
>>>barRects defaultBarOptions [[1,2],[2,3]][[Rect (-0.5) (-0.26315789473684215) (-0.5) (-0.16666666666666669),Rect 2.631578947368418e-2 0.26315789473684204 (-0.5) 0.16666666666666663],[Rect (-0.26315789473684215) (-2.6315789473684292e-2) (-0.5) 0.16666666666666663,Rect 0.26315789473684204 0.4999999999999999 (-0.5) 0.5]]
>>>barRects defaultBarOptions [[]][]
barTextCharts :: BarOptions -> BarData -> [Chart] Source #
Placed text, hold the bars.