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

Safe HaskellSafe
LanguageHaskell2010

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 -> Fill Source #

generates a Solid fill from a hex color value

legend :: [String] -> ChartLegend Source #

generates a ChartLegend from a list of labels

legendWithPosition :: [String] -> LegendPosition -> ChartLegend Source #

generats a ChartLegend from a list of lables and a LegendPosition

makeAxis :: Axis Source #

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 :: ChartGrid Source #

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 :: ChartData Source #

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

text :: ChartData Source #

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

extended :: ChartData Source #

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

automatic :: BarChartWidthSpacing Source #

Set automatic bar width for bar chart

automaticWithSpacing :: Int -> Int -> BarChartWidthSpacing Source #

Set automatic bar width for bar chart, with spacing values

barwidth :: Int -> BarChartWidthSpacing Source #

Set bar width for chart

barwidthspacing :: Int -> Int -> Int -> BarChartWidthSpacing Source #

Set bar width and spacing for chart

relative :: Float -> Float -> BarChartWidthSpacing Source #

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 () -> Chart Source #

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

getChartUrl :: ChartM () -> String Source #

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

convertToUrl :: Chart -> String Source #

Converts a value of type Chart to a URL