GoogleChart-0.1: Generate web-based charts using the Google Chart API




This module is for generating web-based charts using Google's Chart API: Its output is URLs that will resolve to a PNG image of the resulting chart.

Most of the functions in this module, with names like setFoo, take a Chart as an argument and produce a new Chart with the specified attribute added. These calls are designed to be chained together. See the example below.

Charts are represented as a hierarchy of type classes so that parameters that only affect a specific chart type are only available to that chart type.

putStrLn "URL for your chart:"
putStrLn $ chartURL $
  setSize 400 257 $
  setTitle "My Chart" $
  setData (encodeDataSimple [[1..20]]) $
  setLegend ["1 to 20"] $

This produces:


Chart basics

These functions and types are shared by all chart types.

class Chart c Source

The type class underneath all Charts.

chartURL :: Chart c => c -> StringSource

Construct the URL used to show the chart.

setSize :: Chart c => Int -> Int -> c -> cSource

Set the width and height, in pixels, of the resulting image.

setTitle :: Chart c => String -> c -> cSource

Set the title of the chart.



:: Chart c 
=> String

Color of the text.

-> Int

Size of the text.

-> c 
-> c 

Set options for the display of the title of the chart.

setData :: Chart c => ChartData -> c -> cSource

Set the data displayed by the chart.

Chart data

There are multiple options for encoding chart data. See for more details.

data ChartData Source

All the encoding methods produce ChartData, which is usable by setData.


encodeDataSimple :: [[Int]] -> ChartDataSource

Encode data using the "simple" encoding. This produces minimal URLs but doesn't have as much resolution. Input values must be in the range 0 <= x <= 61. Values outside the valid input range will be considered missing data.

encodeDataText :: [[Int]] -> ChartDataSource

Encode data using the "text" encoding. XXX unimplemented.

encodeDataExtended :: [[Int]] -> ChartDataSource

Encode data using the "extended" encoding. XXX unimplemented.

Chart features

class Chart c => LegendChart c whereSource

LegendChart represents charts that can display legends with setLegend.


setLegend :: [String] -> c -> cSource

Set the legend for the corresponding data sets. The colors are taken from the data set colors.

Specific chart types

Line charts

Pie charts

data PieChart Source


data PieStyle Source



Bar charts

data BarStyle Source