charter-0.1.1.1
Safe HaskellNone
LanguageHaskell2010

Charts.Internal.Auto

Synopsis

Documentation

class ChartColumn a where Source #

Class representing types for which a column type can be inferred.

You can implement your own instances for this if you like, but generally shouldn't need to.

Instances

Instances details
ChartColumn Bool Source # 
Instance details

Defined in Charts.Internal.Auto

ChartColumn Double Source # 
Instance details

Defined in Charts.Internal.Auto

ChartColumn Float Source # 
Instance details

Defined in Charts.Internal.Auto

ChartColumn Int Source # 
Instance details

Defined in Charts.Internal.Auto

ChartColumn Scientific Source # 
Instance details

Defined in Charts.Internal.Auto

ChartColumn String Source # 
Instance details

Defined in Charts.Internal.Auto

ChartColumn Text Source # 
Instance details

Defined in Charts.Internal.Auto

type ChartRowAuto a = (ADT a, Constraints a ToJSON) Source #

A constraint representing a type which can be converted into a chart row

This constraint is satisfied by tuple types containing JSON serializable types.

E.g. data rows of type (Text, Int, Float) will infer a chart with a String column and two number columns.

You shouldn't need to implement any instances of this constraint yourself.

type ChartRowHeaderAuto a = Constraints a ChartColumn Source #

A constraint that a column-type can be determined for all elements of the provided tuple type.

autoChart :: forall row. (ChartRowHeaderAuto row, ChartRowAuto row) => ChartOptions -> ChartStyle -> [row] -> Chart Source #

Create a chart from the provided options, style, and data by inferring column header types.

Prefer autoChartWithHeaders when you know your column headers up front.

E.g. The following generates a 2-series bar chart with 4 sections, A, B, C, D

myAutoChart :: Chart
myAutoChart = autoChart defaultChartOptions BarChart myData
  where
    myData :: [(T.Text, Float, Int)]
    myData = [ (A, 16, 20)
             , (B, 11, 23)
             , (C, 9, 25)
             , (D, 8, 34)
             ]

autoChartWithHeaders :: forall row. ChartRowAuto row => ChartOptions -> ChartStyle -> [Column] -> [row] -> Chart Source #

Create a chart from the provided options, style, and data, but use the explicitly provided column headers and types.

E.g. The following generates a 2-series bar chart with 4 sections, A, B, C, D

myAutoChart :: Chart
myAutoChart = autoChartWithHeaders defaultChartOptions BarChart headers myData
  where
    headers :: [Column]
    headers = [StringColumn Series, NumberColumn Successes, NumberColumn Inconclusive]
    myData :: [(T.Text, Float, Int)]
    myData = [ (A, 16, 20)
             , (B, 11, 23)
             , (C, 9, 25)
             , (D, 8, 34)
             ]