packages feed

hs-gchart 0.2 → 0.3

raw patch · 9 files changed

+217/−112 lines, 9 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Graphics.GChart: addLineStyle :: LineStyle -> ChartM ()
+ Graphics.GChart: makeLineStyle :: LineStyle
+ Graphics.GChart: setPieChartOrientation :: Float -> ChartM ()
+ Graphics.GChart.Types: LS :: Float -> Float -> Float -> LineStyle
+ Graphics.GChart.Types: PCO :: Float -> PieChartOrientation
+ Graphics.GChart.Types: chartLineStyles :: Chart -> Maybe ChartLineStyles
+ Graphics.GChart.Types: data LineStyle
+ Graphics.GChart.Types: data PieChartOrientation
+ Graphics.GChart.Types: defaultLineStyle :: LineStyle
+ Graphics.GChart.Types: instance Show LineStyle
+ Graphics.GChart.Types: instance Show PieChartOrientation
+ Graphics.GChart.Types: lineStyleBlankSegment :: LineStyle -> Float
+ Graphics.GChart.Types: lineStyleLineSegment :: LineStyle -> Float
+ Graphics.GChart.Types: lineStyleThickness :: LineStyle -> Float
+ Graphics.GChart.Types: pieChartOrientation :: Chart -> Maybe PieChartOrientation
+ Graphics.GChart.Types: type ChartLineStyles = [LineStyle]
- Graphics.GChart.Types: Chart :: ChartSize -> ChartType -> ChartData -> Maybe ChartTitle -> Maybe ChartColors -> Maybe ChartFills -> Maybe ChartLegend -> Maybe ChartAxes -> Maybe ChartMarkers -> Maybe ChartGrid -> Maybe ChartLabels -> Maybe ChartMargins -> Maybe BarChartWidthSpacing -> Chart
+ Graphics.GChart.Types: Chart :: ChartSize -> ChartType -> ChartData -> Maybe ChartTitle -> Maybe ChartColors -> Maybe ChartFills -> Maybe ChartLegend -> Maybe ChartAxes -> Maybe ChartMarkers -> Maybe ChartGrid -> Maybe ChartLabels -> Maybe ChartMargins -> Maybe BarChartWidthSpacing -> Maybe PieChartOrientation -> Maybe ChartLineStyles -> Chart

Files

Graphics/GChart.hs view
@@ -3,26 +3,15 @@  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/deepakjois/hs-gchart/blob/master/examples/Examples.hs>.--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/> --}-module Graphics.GChart (-  module Graphics.GChart.Types,+- Chart API Intro <http://code.google.com/apis/chart/image_charts.html> -  -- * Setting Chart Parameters-  {-|+- Getting Started <http://code.google.com/apis/chart/docs/making_charts.html> -Use these functions to set the parameters of the chart.+For documentation full Haskell data model, refer to "Graphics.GChart.Types". -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+Here is an example to use the functions in the module to generate a chart URL :  @ generatePieChart = getChartUrl $ do setChartSize 640 400@@ -34,35 +23,84 @@                                  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>. -  setChartSize, setChartType, setDataEncoding, setChartTitle,-  setChartTitleWithColor, setChartTitleWithColorAndFontSize, addChartData,-  addChartDataXY, setColors, addColor, addFill, setLegend, addAxis, setGrid,-  setLabels, setBarWidthSpacing,-  makeShapeMarker, makeRangeMarker, makeFinancialMarker,-  addShapeMarker, addRangeMarker, addFinancialMarker,-  -- * Retrieving Chart data-  getChartData, getChartUrl, convertToUrl, +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++-}+module Graphics.GChart (+  module Graphics.GChart.Types,+   -- * Smart Constructors-  -- | These functions can be used to construct chart-  -- parameters more conveniently-  solid, legend, legendWithPosition, makeAxis, makeGrid,-  simple, text, extended, automatic, automaticWithSpacing,-  barwidth, barwidthspacing, relative-) where+   solid                ,+   legend               ,+   legendWithPosition   ,+   makeAxis             ,+   makeGrid             ,+   simple               ,+   text                 ,+   extended             ,+   automatic            ,+   automaticWithSpacing ,+   barwidth             ,+   barwidthspacing      ,+   relative             ,+   makeShapeMarker      ,+   makeRangeMarker      ,+   makeFinancialMarker  ,+   makeLineStyle        , +  -- * Setting Chart Parameters++   setChartSize                     ,+   setChartType                     ,+   setChartTitle                    ,+   setChartTitleWithColor           ,+   setChartTitleWithColorAndFontSize,+   setDataEncoding                  ,+   addChartData                     ,+   addChartDataXY                   ,+   setColors                        ,+   addColor                         ,+   addFill                          ,+   setLegend                        ,+   addAxis                          ,+   setGrid                          ,+   addShapeMarker                   ,+   addRangeMarker                   ,+   addFinancialMarker               ,+   setLabels                        ,+   setBarWidthSpacing               ,+   setPieChartOrientation           ,+   addLineStyle                     ,++  -- * Retrieving Chart Data++  getChartData,+  getChartUrl,+  convertToUrl+)  where+ import Graphics.GChart.Types import Graphics.GChart.ChartItems import Graphics.GChart.DataEncoding  import Data.List -{- Smart Constructors -} + -- | generates a 'Solid' fill from a hex color value-solid = Fill . Solid+solid :: Color -> FillType -> Fill+solid color filltype = Fill (Solid color) filltype  -- | generates a 'ChartLegend' from a list of labels legend :: [String] -> ChartLegend@@ -145,7 +183,9 @@ makeFinancialMarker :: FinancialMarker makeFinancialMarker = defaultFinancialMarker -{- Setting Chart Parameters-}+-- | Line Style+makeLineStyle :: LineStyle+makeLineStyle = defaultLineStyle  -- | Set the chart size by passing the width and the height in pixels -- For e.g : @setChartSize 320 200@@@ -169,7 +209,7 @@ setChartTitleWithColorAndFontSize title color fontsize =     set $ ChartTitle title (Just color) (Just fontsize) -{-| Use it with 'simple', 'text' or 'extended' to specify the encoding. For e.g+{-| Use this with 'simple', 'text' or 'extended' to specify the encoding. For e.g  @ setDataEncoding simple@@ -259,7 +299,13 @@ setBarWidthSpacing :: BarChartWidthSpacing -> ChartM () setBarWidthSpacing = set -{- Retrieving Chart Data -}+-- | Set pie chart orientation in radians+setPieChartOrientation :: Float -> ChartM ()+setPieChartOrientation = set . PCO++-- | Add line style+addLineStyle :: LineStyle -> ChartM()+addLineStyle = addLineStyleToChart  -- | Extracts the data out of the monad and returns a value of type 'Chart' getChartData :: ChartM () -> Chart
Graphics/GChart/ChartItems.hs view
@@ -7,6 +7,7 @@   addAxisToChart,   addMarker,   getDataSetIdx,+  addLineStyleToChart,   getParams ) where @@ -62,6 +63,12 @@                           new = old ++ [AnyChartMarker marker]                       set new +addLineStyleToChart :: LineStyle -> ChartM ()+addLineStyleToChart style = do chart <- get+                               let old = fromMaybe [] $ chartLineStyles chart+                                   new = old ++ [style]+                               set new+ -- URL Conversion encodeMaybe Nothing = [("","")] encodeMaybe (Just x)  = encode x@@ -79,5 +86,7 @@                                                  encodeMaybe $ chartMarkers chart,                                                  encodeMaybe $ chartLabels  chart,                                                  encodeMaybe $ chartMargins chart,-                                                 encodeMaybe $ barChartWidthSpacing chart]+                                                 encodeMaybe $ barChartWidthSpacing chart,+                                                 encodeMaybe $ pieChartOrientation chart,+                                                 encodeMaybe $ chartLineStyles chart] 
Graphics/GChart/ChartItems/Styles.hs view
@@ -34,8 +34,13 @@                      Just (x,y) -> show x ++ "," ++ show y                      _          -> "" --- TODO: Line Styles+-- Line Styles+instance ChartItem ChartLineStyles where+    set styles = updateChart $ \chart -> chart { chartLineStyles = Just styles } +    encode styles = asList ("chls", intercalate "|" $ map encodeStyle styles) where+                     encodeStyle (LS a b c) = intercalate "," $ map showFloat [a, b, c]+ -- Grid Lines instance ChartItem ChartGrid where     set grid = updateChart $ \chart -> chart { chartGrid = Just grid }@@ -108,3 +113,9 @@                                  idx  = show $ financeDataSetIdx marker                                  size = show $ financeSize marker                                  priority = financePriority marker++-- Pie Chart Orientation+instance ChartItem PieChartOrientation where+    set orientation = updateChart $ \chart -> chart { pieChartOrientation = Just orientation }++    encode (PCO orientation) = asList ("chp", show orientation)
Graphics/GChart/ChartItems/Util.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE  TypeSynonymInstances #-} module Graphics.GChart.ChartItems.Util (-  updateChart,asList+  updateChart, asList, showFloat ) where  import Control.Monad.State@@ -9,3 +9,8 @@                    put $ u chart  asList a = [a]++showFloat :: Float -> String+showFloat i | makeFloat (truncate i) - i == 0  = show $ truncate i+            | otherwise                        = show (fromIntegral (round (i * 10.0)) / 10.0)+    where makeFloat i = fromIntegral i :: Float
Graphics/GChart/DataEncoding.hs view
@@ -22,7 +22,7 @@                    | ord c >= ord 'a' && ord c <= ord 'z' = 26 + (ord c - ord 'a')                    | ord c >= ord '0' && ord c <= ord '9' = 52 + (ord c - ord '0')                    | otherwise = -1- + encodeText datas = "t:" ++ intercalate "|" (map encData datas) where     encData = intercalate "," . map encDatum     encDatum i | i >= 0 && i <= 100 = showDecimal i
Graphics/GChart/Types.hs view
@@ -1,29 +1,39 @@ {-# LANGUAGE ExistentialQuantification #-} {-| This module contains the Haskell data model for the Google Chart API. -Details about the parameters can be found on the Google Chart API website :-<http://code.google.com/apis/chart/>+More details about the API and parameters can be found at :+<http://code.google.com/apis/chart/image_charts.html> -Some chart types are not supported yet :+Some chart types are not supported yet: -- Maps <http://code.google.com/apis/chart/types.html#maps>+- Box Charts <http://code.google.com/apis/chart/docs/gallery/compound_charts.html#box_charts> -- QRCodes <http://code.google.com/apis/chart/types.html#qrcodes>+- Candlestick Charts <http://code.google.com/apis/chart/docs/gallery/compound_charts.html#candlestick_charts> -Some parameters are not supported yet :+- Compound Charts <http://code.google.com/apis/chart/docs/gallery/compound_charts.html> -- Data Scaling <http://code.google.com/apis/chart/formats.html#data_scaling>+- Dynamic Icons <http://code.google.com/apis/chart/docs/gallery/dynamic_icons.html> -- Bar chart zero line  <http://code.google.com/apis/chart/styles.html#zero_line>+- Formula Chart <http://code.google.com/apis/chart/docs/gallery/formulas.html> -- Data point labels <http://code.google.com/apis/chart/labels.html#data_point_labels>+- Map Charts <http://code.google.com/apis/chart/docs/gallery/map_charts.html> -- Fill area <http://code.google.com/apis/chart/colors.html#fill_area_marker>+- QR Codes <http://code.google.com/apis/chart/docs/gallery/qr_codes.html> -- Line Styles <http://code.google.com/apis/chart/styles.html#line_styles>+Some parameters are not supported yet: -- Pie chart orientation <http://code.google.com/apis/chart/types.html#pie_charts>+- Chart Data Scaling <http://code.google.com/apis/chart/docs/data_formats.html#data_scaling> +- Text and Data Value Markers <http://code.google.com/apis/chart/docs/chart_params.html#gcharts_data_point_labels>++- QR code output encoding <http://code.google.com/apis/chart/docs/gallery/qr_codes.html>++- Bar chart zero line <http://code.google.com/apis/chart/docs/gallery/bar_charts.html#chp>++- Dynamic icon type <http://code.google.com/apis/chart/docs/gallery/dynamic_icons.html>++- Geographic area <http://code.google.com/apis/chart/docs/gallery/map_charts.html>+ -}  module Graphics.GChart.Types (@@ -36,65 +46,68 @@   -- | This type represents the Chart   Chart(..), -  -- * Required Parameters-  -- | These parameters are required for all charts+  -- * Chart Parameters+  {-| Some of these parameters behave differently depending on the chart type; -  -- ** Chart Size-  ChartSize(..),-  -- ** Chart Data-  ChartData(..),-  -- ** Chart Type-  ChartType(..),+      More details : <http://code.google.com/apis/chart/docs/chart_params.html>+  -} -  -- * Optional Parameters-  -- | All other parameters are optional -  -- ** Colors+  -- ** Bar Width and Spacing+  BarChartWidthSpacing(..), BarWidth(..), BarGroupSpacing(..), -  -- *** Chart Colors+  -- ** Series Colors   ChartColors(..), Color, -  -- ** Chart Fills : Solid Fill, Linear Gradient, Linear Stripes-  ChartFills, Fill(..), FillKind(..), FillType(..),-  Offset, Width, Angle,+  -- ** Chart Data+  ChartData(..), -  -- ** Labels+  -- ** Chart Legend Text and Style+  ChartLegend(..), LegendPosition(..), -  -- *** Chart Title-  ChartTitle(..),+  -- ** Solid, Gradient and Striped Fills+  ChartFills, Fill(..), FillKind(..), FillType(..),+  Offset, Width, Angle, -  -- *** Chart Legend-  ChartLegend(..), LegendPosition(..),+  -- ** Grid Lines+  ChartGrid(..), -  -- *** Pie chart and Google-o-meter labels+  -- ** Pie chart labels, Google-o-meter label (TODO: QR code data, Formula TeX data)   ChartLabels(..), -  -- *** Axis styles and labels-  ChartAxes, Axis(..), AxisType(..), AxisLabel, AxisPosition, FontSize,-  AxisRange(..), AxisStyle(..), DrawingControl(..), AxisStyleAlignment(..),--  -- ** Styles+  -- *** Line Styles+  ChartLineStyles(..), LineStyle(..), -  -- *** Bar width and spacing-  BarChartWidthSpacing(..), BarWidth(..), BarGroupSpacing(..),+  -- *** Shape, Range and Financial Markers+  AnyChartMarker(..), ChartMarker(..), ChartMarkers,+  ShapeType(..), MarkerDataPoint(..), ShapeMarker(..),+  RangeMarkerType(..), RangeMarker(..), FinancialMarker(..),    -- *** Chart Margins   ChartMargins(..), -  -- *** Grid Lines-  ChartGrid(..),+  -- *** Pie Chart Orientation+  PieChartOrientation(..), -  -- *** Shape, Range and Financial Markers-  AnyChartMarker(..), ChartMarker(..), ChartMarkers,-  ShapeType(..), MarkerDataPoint(..), ShapeMarker(..),-  RangeMarkerType(..), RangeMarker(..), FinancialMarker(..),+  -- ** Chart Size+  ChartSize(..), +  -- ** Chart Type+  ChartType(..),++  -- *** Chart Title and Style+  ChartTitle(..),++  -- *** Visible Axis Axis styles and labels+  ChartAxes, Axis(..), AxisType(..), AxisLabel, AxisPosition, FontSize,+  AxisRange(..), AxisStyle(..), DrawingControl(..), AxisStyleAlignment(..),+   -- * Default Values   {-| These functions return default values for complex parameters, which can be        used as starting points to construct parameters when creating charts. -}    defaultChart, defaultAxis, defaultGrid, defaultSpacing, defaultShapeMarker,-  defaultRangeMarker, defaultFinancialMarker+  defaultRangeMarker, defaultFinancialMarker, defaultLineStyle ) where  import Control.Monad.State@@ -103,7 +116,7 @@ data ChartSize = Size Int Int deriving Show  --- | Chart type <http://code.google.com/apis/chart/types.html>+-- | Chart type data ChartType   = Line                  -- ^ Line Chart   | Sparklines            -- ^ Sparklines@@ -122,7 +135,6 @@     deriving Show  -- | Title of the chart--- | <http://code.google.com/apis/chart/labels.html#chart_title> data ChartTitle =     ChartTitle {       titleStr ::String               -- ^ Title@@ -132,7 +144,6 @@  -- | Chart data along with encoding. XY data for is encoded a pair of -- | consecutive data sets--- | <http://code.google.com/apis/chart/formats.html> data ChartData   = Simple [[Int]]   -- ^ lets you specify integer values from 0-61, inclusive   | Text [[Float]]   -- ^ supports floating point numbers from 0-100, inclusive@@ -143,11 +154,10 @@ type Color = String  -- | Chart colors specified as a list of 'Color' values for each data point.--- <http://code.google.com/apis/chart/colors.html#chart_colors> data ChartColors = ChartColors [Color] deriving Show  --- | Specifies the angle of the gradient between 0 (horizontal) and 90+-- | Angle of the gradient between 0 (horizontal) and 90 -- (vertical). Applicable to 'LinearGradient' and 'LinearStripes' type Angle = Float @@ -162,9 +172,9 @@  -- | Specifies the kind of fill data FillKind-    = Solid Color -- ^ Solid Fill <http://code.google.com/apis/chart/colors.html#solid_fill>-    | LinearGradient Angle [(Color,Offset)] -- ^ Linear Gradient <http://code.google.com/apis/chart/colors.html#linear_gradient>-    | LinearStripes Angle [(Color,Width)]  -- ^ Linear Stripes <http://code.google.com/apis/chart/colors.html#linear_stripes>+    = Solid Color -- ^ Solid Fill+    | LinearGradient Angle [(Color,Offset)] -- ^ Linear Gradient+    | LinearStripes Angle [(Color,Width)]  -- ^ Linear Stripes       deriving Show  -- | Specifies the type of fill@@ -190,12 +200,10 @@     | LegendLeft     -- ^ Right of chart       deriving Show --- | Specifies a chart legend--- <http://code.google.com/apis/chart/labels.html#chart_legend>+-- | Chart legend data ChartLegend = Legend [String] (Maybe LegendPosition) deriving Show  -- | Type of 'Axis'--- <http://code.google.com/apis/chart/labels.html#axis_type> data AxisType     = AxisBottom -- ^ Bottom x-axis     | AxisTop    -- ^ Top x-axis@@ -204,10 +212,9 @@       deriving Show  -- | 'Axis' Labels.--- <http://code.google.com/apis/chart/labels.html#axis_labels> type AxisLabel = String -{-| 'Axis' Label Positions. <http://code.google.com/apis/chart/labels.html#axis_label_positions>+{-| 'Axis' Label Positions.  Labels with a specified position of 0 are placed at the bottom of the y- or r-axis, or at the left of the x- or t-axis.@@ -218,7 +225,7 @@ -} type AxisPosition = Float -{-| 'Axis' Range <http://code.google.com/apis/chart/labels.html#axis_range>+{-| 'Axis' Range  The range is specifies with a tuple containing the start and end values. An optional interval value can be specified.@@ -243,16 +250,14 @@     | DrawLinesTicks -- ^ Draw axis lines and tick marks       deriving (Show,Eq) --- | Specify 'Axis' style--- <http://code.google.com/apis/chart/labels.html#axis_styles>+-- | 'Axis' style data AxisStyle = Style { axisColor :: Color,                          axisFontSize :: Maybe FontSize,                          axisStyleAlign :: Maybe AxisStyleAlignment,                          axisDrawingControl :: Maybe DrawingControl,                          tickMarkColor      :: Maybe Color } deriving (Show,Eq) --- | Specify an axis for chart.--- <http://code.google.com/apis/chart/labels.html#axis_styles>+-- | Visible axis data Axis = Axis { axisType :: AxisType,                    axisLabels :: Maybe [AxisLabel],                    axisPositions :: Maybe [AxisPosition],@@ -263,7 +268,6 @@ type ChartAxes = [Axis]  -- | Grid Lines for Chart--- <http://code.google.com/apis/chart/styles.html#grid> data ChartGrid =     ChartGrid {       xAxisStep :: Float -- ^ x-axis step size (0-100)@@ -371,9 +375,11 @@ -- Specify a list with a single label for Google-o-meter data ChartLabels = ChartLabels [String] deriving Show +-- | Pie Chart Orientation. Applicable only to Pie Charts,+data PieChartOrientation = PCO Float deriving Show+ -- | Chart Margins. All margin values specified are the minimum margins around -- the plot area, in pixels.--- <http://code.google.com/apis/chart/styles.html#chart_margins> data ChartMargins =     ChartMargins {       leftMargin   :: Int                -- ^ Left margin around plot area@@ -398,6 +404,14 @@ -- | Bar Width and Spacing. type BarChartWidthSpacing =  (Maybe BarWidth, Maybe BarGroupSpacing) +-- | Line Style. Applicable for line charts+data LineStyle =  LS { lineStyleThickness :: Float    -- ^ Thickness+                     , lineStyleLineSegment :: Float  -- ^ Length of Line Segment+                     , lineStyleBlankSegment :: Float -- ^ Length of Blank Segment+                      } deriving Show++type ChartLineStyles = [LineStyle]+ -- | Data type for the chart data Chart =     Chart {@@ -414,6 +428,8 @@     , chartLabels  :: Maybe ChartLabels     , chartMargins :: Maybe ChartMargins     , barChartWidthSpacing :: Maybe BarChartWidthSpacing+    , pieChartOrientation  :: Maybe PieChartOrientation+    , chartLineStyles      :: Maybe ChartLineStyles     } deriving Show  @@ -456,7 +472,9 @@             chartLabels = Nothing,             chartMargins = Nothing,             chartMarkers = Nothing,-            barChartWidthSpacing = Nothing+            barChartWidthSpacing = Nothing,+            pieChartOrientation = Nothing,+            chartLineStyles = Nothing           }  -- | Default value for an axis@@ -503,3 +521,9 @@                               financeDataPoint = DataPointEvery,                               financeSize = 5,                               financePriority = 0 }++-- | Default value of a line style+defaultLineStyle = LS { lineStyleThickness = 1,+                        lineStyleLineSegment = 1,+                        lineStyleBlankSegment = 0 }+
README.md view
@@ -2,14 +2,14 @@   **GChart** is a Haskell wrapper around [Google Chart API]. -[Google Chart API]: http://code.google.com/apis/chart/+[Google Chart API]: http://code.google.com/apis/chart/image_charts.html  There is a library on Hackage called [GoogleChart] which provides another wrapper, however it has not been updated in a long while. GChart improves upon that effort by trying to design a more elegant API, and supporting more chart types and features. -[GoogleChart]: http://hackage.haskell.org/packages/archive/GoogleChart/0.2/doc/html/Graphics-Google-Chart.html+[GoogleChart]: http://hackage.haskell.org/packages/archive/GoogleChart/0.3/doc/html/Graphics-Google-Chart.html  ## Installation @@ -19,7 +19,7 @@  * [API functions reference](http://hackage.haskell.org/package/hs-gchart) -* [Haskell data types reference](http://hackage.haskell.org/packages/archive/hs-gchart/0.1.1/doc/html/Graphics-GChart-Types.html)+* [Haskell data types reference](http://hackage.haskell.org/packages/archive/hs-gchart/0.2/doc/html/Graphics-GChart-Types.html)  * [Google Chart API] 
examples/Examples.hs view
@@ -116,6 +116,15 @@                                                                            , shapeColor = "ff0000"                                                                            , shapeSize  = 10 } +lineChartWithLineStyles = getChartUrl $ do setChartSize 200 125+                                           setChartType Line+                                           setDataEncoding simple++                                           addChartData $ map encSimpleReverse "93zyvneTTOMJMLIJFHEAECFJGHDBFCFIERcgnpy45879"+                                           addLineStyle $ makeLineStyle { lineStyleThickness = 3, lineStyleLineSegment = 6, lineStyleBlankSegment = 3 }++                                           addChartData $ map encSimpleReverse "IJKNUWUWYdnswz047977315533zy1246872tnkgcaZQONHCECAAAAEII"+                                           addLineStyle $ makeLineStyle { lineStyleThickness = 1, lineStyleLineSegment = 1, lineStyleBlankSegment = 0 } blanks x = take x $ repeat ""  dataSeries1 :: [Int]@@ -159,3 +168,4 @@           putStrLn bargraphAutoSpacing           putStrLn bargraphRelativeSpacing           putStrLn scatterPlotWithMarkers+          putStrLn lineChartWithLineStyles
hs-gchart.cabal view
@@ -1,5 +1,5 @@ name: hs-gchart-version: 0.2+version: 0.3 synopsis: Haskell wrapper for the Google Chart API description:     This module is a wrapper around the Google Chart API. It exposes a rich@@ -22,7 +22,7 @@  source-repository head   type:     git-  location: git@github.com:deepakjois/hs-gchart.git+  location: git://github.com/deepakjois/hs-gchart.git  library   build-depends: