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

Safe HaskellSafe-Inferred

Graphics.GChart

Contents

Description

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

For more information about the Google Chart API, refer to

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

Here is an example to use the functions in the module to generate a chart URL :

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"]

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

The module constists of:

  • Smart Constructors - to make it convenient to construct data types
  • Functions to set chart data
  • Functions to retrieve chart data in form of URL or Haskell data type

Synopsis

Documentation

Smart Constructors

solid :: Color -> FillType -> FillSource

generates a Solid fill from a hex color value

legend :: [String] -> ChartLegendSource

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.

automatic :: BarChartWidthSpacingSource

Set automatic bar width for bar chart

automaticWithSpacing :: Int -> Int -> BarChartWidthSpacingSource

Set automatic bar width for bar chart, with spacing values

barwidth :: Int -> BarChartWidthSpacingSource

Set bar width for chart

barwidthspacing :: Int -> Int -> Int -> BarChartWidthSpacingSource

Set bar width and spacing for chart

relative :: Float -> Float -> BarChartWidthSpacingSource

Set relative spacing

Setting Chart Parameters

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

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

setChartHeight :: Int -> ChartM ()Source

Set chart height only. Applicable to Formula charts This will set the width to 0 which will automatically be excluded when the data is being encoded

setChartType :: ChartType -> ChartM ()Source

Set the chart type by passing a ChartType

setChartTitle :: String -> ChartM ()Source

Set the chart title by passing a ChartTitle

setChartTitleWithColor :: String -> Color -> ChartM ()Source

Set the chart title with a color

setChartTitleWithColorAndFontSize :: String -> Color -> FontSize -> ChartM ()Source

Set the chart title with color and font size

setDataEncoding :: ChartData -> ChartM ()Source

Use this 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.

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

addDataScale :: DataScale -> ChartM ()Source

Add a scale to chart.If more than one scale is added, it applies the scale in order to each data series

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

addShapeMarker :: ShapeMarker -> ChartM ()Source

Adds a shape marker. Use makeShapeMarker smart constructor when calling this function If value of data set index is not specified when using makeShapeMarker, it automatically adds a data index to refer to the latest data set

addRangeMarker :: RangeMarker -> ChartM ()Source

Adds a range marker. You can use makeRangeMarker smart constructor when calling this function

addFinancialMarker :: FinancialMarker -> ChartM ()Source

Adds a financial marker. Use makeFinancialMarker smart constructor when calling this function. If value of data set index is not specified when using makeFinancialMarker, it automatically adds a data index to refer to the latest data set

addLineMarker :: LineMarker -> ChartM ()Source

Adds a line marker. Use makeLineMarker smart constructor when calling this function. If value of data set index is not specified when using makeLineMarker, it automatically adds a data index to refer to the latest data set

addLineFill :: LineFillType -> Color -> ChartM ()Source

Adds a line fill to the chart

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

Set labels for the chart

setLabel :: String -> ChartM ()Source

Set label for a chart

setBarWidthSpacing :: BarChartWidthSpacing -> ChartM ()Source

Set bar and width spacing

setPieChartOrientation :: Float -> ChartM ()Source

Set pie chart orientation in radians

addLineStyle :: LineStyle -> ChartM ()Source

Add line style

setFormula :: String -> ChartM ()Source

Set formula. Applies only to Formula charts

setQREncoding :: QREncoding -> ChartM ()Source

Set QR code output encoding. Valid for QRCode only

setQRWidth :: Int -> ChartM ()Source

Sets the width (in rows) of the white border around the data portion of the QRCode

setQRErrorCorrection :: ErrorCorrectionLevel -> ChartM ()Source

Sets the error correction level for QRCode

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