-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Generate web-based charts using the Google Chart API -- -- Generate web-based charts using the Google Chart API @package GoogleChart @version 0.2 -- | This module is for generating web-based charts using Google's Chart -- API: http://code.google.com/apis/chart/. 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"] $
--     newLineChart
--   
-- -- This produces: -- http://chart.apis.google.com/chart?chs=400x257&chtt=My+Chart&chd=s%3aBCDEFGHIJKLMNOPQRSTU&chdl=1+to+20&cht=lc -- -- Remaining features to implement: -- -- module Graphics.Google.Chart -- | The type class underneath all Charts. class Chart c -- | Construct the URL used to show the chart. chartURL :: Chart c => c -> String -- | Set the width and height, in pixels, of the resulting image. setSize :: Chart c => Int -> Int -> c -> c -- | Set the title of the chart. setTitle :: Chart c => String -> c -> c -- | Set options for the display of the title of the chart. setTitleOpts :: Chart c => String -> Int -> c -> c -- | Set the data displayed by the chart. setData :: Chart c => ChartData -> c -> c -- | All the encoding methods produce ChartData, which is usable by -- setData. data ChartData -- | Encode data using the "simple" encoding, which maps each input value -- to a single letter in the URL. This produces minimal URLs but doesn't -- have as lot of resolution. Input values must be in the range 0 -- <= x <= 61. Values outside the valid input range will be -- considered missing data. encodeDataSimple :: [[Int]] -> ChartData -- | Encode data using the "text" encoding, which maps each input value to -- its string representation (e.g. "3.4") in the URL. This has more -- resolution than simple encoding but produces larger URLs. Input values -- must be in the range 0 <= x <= 100. Values outside the -- valid input range will be considered missing data. Values with more -- than one decimal place of resolution will be rounded. encodeDataText :: RealFrac a => [[a]] -> ChartData -- | Encode data using the "extended" encoding, which maps each input value -- to a two-character pair in base 64. This has more resolution than text -- encoding and is more compact. Input values must be in the range 0 -- <= x <= 4095. Values outside the valid input range will be -- considered missing data. encodeDataExtended :: [[Int]] -> ChartData -- | Set data set colors. The nth color specified here colors the nth data -- set in the ChartData passed to setData. See -- http://code.google.com/apis/chart/#line_bar_pie_colors for more -- information. setDataColors :: Chart c => [String] -> c -> c -- | LegendChart represents charts that can display legends with -- setLegend. class Chart c => LegendChart c -- | Set the legend for the corresponding data sets. The colors are taken -- from the data set colors. setLegend :: LegendChart c => [String] -> c -> c -- | AxisLabelChart represents charts that can display axis labels. class Chart c => AxisLabelChart c -- | Set which axes to display. Repeating an AxisType produces -- multiple sets of labels on that axis. setAxisTypes :: AxisLabelChart c => [AxisType] -> c -> c -- | Where to display an axis. data AxisType AxisBottom :: AxisType AxisTop :: AxisType AxisLeft :: AxisType AxisRight :: AxisType -- | Set axis labels. The nth list of strings in the argument sets the -- labels for the nth axis specified with setAxisTypes. An empty -- list of strings skips labelling the corresponding axis. setAxisLabels :: AxisLabelChart c => [[String]] -> c -> c -- | Set axis label positions. The nth list of Ints in the argument sets -- the positions for the nth axis specified with setAxisTypes. An -- empty list skips setting position for the corresponding axis. setAxisLabelPositions :: AxisLabelChart c => [[Int]] -> c -> c -- | Set axis ranges. The nth pair of Ints in the argument sets the range -- for the nth axis specified with setAxisTypes. setAxisRanges :: AxisLabelChart c => [(Int, Int)] -> c -> c -- | Text alignment for labels on an axis. data AxisAlignment AlignLeft :: AxisAlignment AlignCenter :: AxisAlignment AlignRight :: AxisAlignment -- | Set axis styles. The nth element in the argument sets the style for -- the nth axis specified with setAxisTypes. Each style is a tuple -- of (color, font size, text alignment). setAxisStyles :: AxisLabelChart c => [(String, Int, AxisAlignment)] -> c -> c data LineChart newLineChart :: LineChart data PieChart newPieChart :: PieStyle -> PieChart data PieStyle Pie2D :: PieStyle Pie3D :: PieStyle -- | Set labels for the different data points on the chart. Specify missing -- values by passing an empty string. setLabels :: [String] -> PieChart -> PieChart data BarChart newBarChart :: Orientation -> BarStyle -> BarChart data Orientation Horizontal :: Orientation Vertical :: Orientation data BarStyle Stacked :: BarStyle Grouped :: BarStyle -- | Venn diagram data is specified in a particular format. There should be -- exactly seven data values, which represent, in order: circle A size, -- circle B size, circle C size, A/B overlap, A/C overlap, B/C overlap, -- A/B/C overlap. data VennDiagram newVennDiagram :: VennDiagram instance Show ChartData instance LegendChart VennDiagram instance Chart VennDiagram instance AxisLabelChart BarChart instance LegendChart BarChart instance Chart BarChart instance Chart PieChart instance AxisLabelChart LineChart instance LegendChart LineChart instance Chart LineChart