hs-gchart-0.1: Haskell wrapper for the Google Chart API

Graphics.GChart

Contents

Description

Import this module to generate charts using the Google Chart API.

For more examples, refer to Examples.hs in the source tarball, or download it directly from Github : http://github.com/hs-gchart/.

For documentation regarding the full data model, refer to Graphics.GChart.Types.

For more information about the Google Chart API, refer to http://code.google.com/apis/chart/

Synopsis

Documentation

Setting Chart Parameters

Use these functions to set the parameters of the chart.

These functions must be called inside a do block, which can then be passed onto getChartUrl or getChartData. For e.g, here is a simple pie chart function

generatePieChart = getChartUrl $ do setChartSize 640 400
                                 setChartType Pie
                                 setChartTitle "Test"
                                 addChartData  ([1,2,3,4,5]::[Int])
                                 addColor "FF0000"
                                 setLegend $ legend ["t1","t2", "t3","t4","t5"]
                                 setLabels $ ["Test 1", "Test 2", "Test 3", "Test 4", "Test 5"]

setChartSize :: Int -> Int -> ChartM ()Source

Set the chart size by passing the width and the height in pixels For e.g : setChartSize 320 200

setChartType :: ChartType -> ChartM ()Source

Set the chart type by passing a ChartType

setDataEncoding :: ChartData -> ChartM ()Source

Use it with simple, text or extended to specify the encoding. For e.g

setDataEncoding simple

Make sure you pass in values of the right type, Int for simple and extended encoding, and Float for text encoding.

setChartTitle :: String -> ChartM ()Source

Set the chart title by passing a ChartTitle

addChartData :: ChartDataEncodable a => [a] -> ChartM ()Source

Add data to chart. Make sure you have set the data encoding using setDataEncoding before calling this function, otherwise it may generate gibberish, or throw an error

addChartDataXY :: ChartDataEncodable a => [(a, a)] -> ChartM ()Source

Works like addChartData, but for XY datasets for line XY chart etc

setColors :: [Color] -> ChartM ()Source

Pass a list of colors corresponding to the datasets in the chart

addColor :: Color -> ChartM ()Source

Add a color to the chart. This color will be added to the list ChartColors.

Make sure you do not include a call to setColors at any time after a call to addColor, since this will lead to all previous values being erased.

addFill :: Fill -> ChartM ()Source

Add a Fill to the chart

setLegend :: ChartLegend -> ChartM ()Source

Set a Legend for the chart

addAxis :: Axis -> ChartM ()Source

Add an Axis to the chart

setGrid :: ChartGrid -> ChartM ()Source

Set a ChartGrid for the chart

setLabels :: [String] -> ChartM ()Source

Set labels for the chart

Retrieving Chart data

getChartData :: ChartM () -> ChartSource

Extracts the data out of the monad and returns a value of type Chart

getChartUrl :: ChartM () -> StringSource

Extracts the data out of the monad and returns a URL string for the chart

convertToUrl :: Chart -> StringSource

Converts a value of type Chart to a URL

Smart Constructors

These functions can be used to construct chart parameters more conveniently

legend :: [String] -> ChartLegendSource

generates a Solid fill from a hex color value

generates a ChartLegend from a list of labels

legendWithPosition :: [String] -> LegendPosition -> ChartLegendSource

generats a ChartLegend from a list of lables and a LegendPosition

makeAxis :: AxisSource

returns a default axis. Use this to override the fields with your own values. For e.g :

makeAxis { axisType = AxisTop,
           axisLabels = ["0","50","100"] }

makeGrid :: ChartGridSource

returns a default axis. Use this to override the fields with your own values. For e.g :

makeGrid { xAxisStep = 10,
           yAxisStep = 10,
            xOffset = Just 5 }

simple :: ChartDataSource

Use this to specify the Simple encoding for the setDataEncoding function.

text :: ChartDataSource

Use this to specify the Text encoding for the setDataEncoding function.

extended :: ChartDataSource

Use this to specify the Extended encoding for the setDataEncoding function.