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 +81/−35
- Graphics/GChart/ChartItems.hs +10/−1
- Graphics/GChart/ChartItems/Styles.hs +12/−1
- Graphics/GChart/ChartItems/Util.hs +6/−1
- Graphics/GChart/DataEncoding.hs +1/−1
- Graphics/GChart/Types.hs +92/−68
- README.md +3/−3
- examples/Examples.hs +10/−0
- hs-gchart.cabal +2/−2
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: