packages feed

Chart 0.15 → 0.16

raw patch · 8 files changed

+290/−91 lines, 8 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Graphics.Rendering.Chart.Axis.Floating: scaledAxis :: RealFloat a => LinearAxisParams a -> (a, a) -> AxisFn a
+ Graphics.Rendering.Chart.Axis.Int: scaledIntAxis :: (Integral i, PlotValue i) => LinearAxisParams i -> (i, i) -> AxisFn i
+ Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_4d_opacity_ :: AreaSpots4D z t x y -> Double
+ Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_opacity_ :: AreaSpots z x y -> Double
+ Graphics.Rendering.Chart.SparkLine: SparkLine :: SparkOptions -> [Double] -> SparkLine
+ Graphics.Rendering.Chart.SparkLine: SparkOptions :: Bool -> Int -> Int -> (Double, Double) -> Colour Double -> Colour Double -> Colour Double -> Colour Double -> Bool -> Bool -> Bool -> SparkOptions
+ Graphics.Rendering.Chart.SparkLine: barSpark :: SparkOptions
+ Graphics.Rendering.Chart.SparkLine: data SparkLine
+ Graphics.Rendering.Chart.SparkLine: data SparkOptions
+ Graphics.Rendering.Chart.SparkLine: instance Show SparkOptions
+ Graphics.Rendering.Chart.SparkLine: instance ToRenderable SparkLine
+ Graphics.Rendering.Chart.SparkLine: renderSparkLine :: SparkLine -> CRender (PickFn ())
+ Graphics.Rendering.Chart.SparkLine: sl_data :: SparkLine -> [Double]
+ Graphics.Rendering.Chart.SparkLine: sl_options :: SparkLine -> SparkOptions
+ Graphics.Rendering.Chart.SparkLine: smoothSpark :: SparkOptions
+ Graphics.Rendering.Chart.SparkLine: so_bgColor :: SparkOptions -> Colour Double
+ Graphics.Rendering.Chart.SparkLine: so_height :: SparkOptions -> Int
+ Graphics.Rendering.Chart.SparkLine: so_lastColor :: SparkOptions -> Colour Double
+ Graphics.Rendering.Chart.SparkLine: so_lastMarker :: SparkOptions -> Bool
+ Graphics.Rendering.Chart.SparkLine: so_limits :: SparkOptions -> (Double, Double)
+ Graphics.Rendering.Chart.SparkLine: so_maxColor :: SparkOptions -> Colour Double
+ Graphics.Rendering.Chart.SparkLine: so_maxMarker :: SparkOptions -> Bool
+ Graphics.Rendering.Chart.SparkLine: so_minColor :: SparkOptions -> Colour Double
+ Graphics.Rendering.Chart.SparkLine: so_minMarker :: SparkOptions -> Bool
+ Graphics.Rendering.Chart.SparkLine: so_smooth :: SparkOptions -> Bool
+ Graphics.Rendering.Chart.SparkLine: so_step :: SparkOptions -> Int
+ Graphics.Rendering.Chart.SparkLine: sparkLineToPDF :: FilePath -> SparkLine -> IO ()
+ Graphics.Rendering.Chart.SparkLine: sparkLineToPNG :: FilePath -> SparkLine -> IO (PickFn ())
+ Graphics.Rendering.Chart.SparkLine: sparkSize :: SparkLine -> (Int, Int)
- Graphics.Rendering.Chart.Axis.Floating: la_labelf :: T (LinearAxisParams a_ajni) (a_ajni -> String)
+ Graphics.Rendering.Chart.Axis.Floating: la_labelf :: T (LinearAxisParams a_aix2) (a_aix2 -> String)
- Graphics.Rendering.Chart.Axis.Floating: la_nLabels :: T (LinearAxisParams a_ajni) Int
+ Graphics.Rendering.Chart.Axis.Floating: la_nLabels :: T (LinearAxisParams a_aix2) Int
- Graphics.Rendering.Chart.Axis.Floating: la_nTicks :: T (LinearAxisParams a_ajni) Int
+ Graphics.Rendering.Chart.Axis.Floating: la_nTicks :: T (LinearAxisParams a_aix2) Int
- Graphics.Rendering.Chart.Axis.Floating: loga_labelf :: T (LogAxisParams a_ajnh) (a_ajnh -> String)
+ Graphics.Rendering.Chart.Axis.Floating: loga_labelf :: T (LogAxisParams a_aix1) (a_aix1 -> String)
- Graphics.Rendering.Chart.Axis.Types: axis_grid :: T (AxisData x_adV6) [x_adV6]
+ Graphics.Rendering.Chart.Axis.Types: axis_grid :: T (AxisData x_adrs) [x_adrs]
- Graphics.Rendering.Chart.Axis.Types: axis_labels :: T (AxisData x_adV6) [[(x_adV6, String)]]
+ Graphics.Rendering.Chart.Axis.Types: axis_labels :: T (AxisData x_adrs) [[(x_adrs, String)]]
- Graphics.Rendering.Chart.Axis.Types: axis_ticks :: T (AxisData x_adV6) [(x_adV6, Double)]
+ Graphics.Rendering.Chart.Axis.Types: axis_ticks :: T (AxisData x_adrs) [(x_adrs, Double)]
- Graphics.Rendering.Chart.Axis.Types: axis_tropweiv :: T (AxisData x_adV6) (Range -> Double -> x_adV6)
+ Graphics.Rendering.Chart.Axis.Types: axis_tropweiv :: T (AxisData x_adrs) (Range -> Double -> x_adrs)
- Graphics.Rendering.Chart.Axis.Types: axis_viewport :: T (AxisData x_adV6) (Range -> x_adV6 -> Double)
+ Graphics.Rendering.Chart.Axis.Types: axis_viewport :: T (AxisData x_adrs) (Range -> x_adrs -> Double)
- Graphics.Rendering.Chart.Layout: laxis_generate :: T (LayoutAxis x_aW9v) (AxisFn x_aW9v)
+ Graphics.Rendering.Chart.Layout: laxis_generate :: T (LayoutAxis x_aUJa) (AxisFn x_aUJa)
- Graphics.Rendering.Chart.Layout: laxis_override :: T (LayoutAxis x_aW9v) (AxisData x_aW9v -> AxisData x_aW9v)
+ Graphics.Rendering.Chart.Layout: laxis_override :: T (LayoutAxis x_aUJa) (AxisData x_aUJa -> AxisData x_aUJa)
- Graphics.Rendering.Chart.Layout: laxis_reverse :: T (LayoutAxis x_aW9v) Bool
+ Graphics.Rendering.Chart.Layout: laxis_reverse :: T (LayoutAxis x_aUJa) Bool
- Graphics.Rendering.Chart.Layout: laxis_style :: T (LayoutAxis x_aW9v) AxisStyle
+ Graphics.Rendering.Chart.Layout: laxis_style :: T (LayoutAxis x_aUJa) AxisStyle
- Graphics.Rendering.Chart.Layout: laxis_title :: T (LayoutAxis x_aW9v) String
+ Graphics.Rendering.Chart.Layout: laxis_title :: T (LayoutAxis x_aUJa) String
- Graphics.Rendering.Chart.Layout: laxis_title_style :: T (LayoutAxis x_aW9v) CairoFontStyle
+ Graphics.Rendering.Chart.Layout: laxis_title_style :: T (LayoutAxis x_aUJa) CairoFontStyle
- Graphics.Rendering.Chart.Layout: laxis_visible :: T (LayoutAxis x_aW9v) ([x_aW9v] -> Bool)
+ Graphics.Rendering.Chart.Layout: laxis_visible :: T (LayoutAxis x_aUJa) ([x_aUJa] -> Bool)
- Graphics.Rendering.Chart.Layout: layout1_background :: T (Layout1 x_aW9t y_aW9u) CairoFillStyle
+ Graphics.Rendering.Chart.Layout: layout1_background :: T (Layout1 x_aUJ8 y_aUJ9) CairoFillStyle
- Graphics.Rendering.Chart.Layout: layout1_bottom_axis :: T (Layout1 x_aW9t y_aW9u) (LayoutAxis x_aW9t)
+ Graphics.Rendering.Chart.Layout: layout1_bottom_axis :: T (Layout1 x_aUJ8 y_aUJ9) (LayoutAxis x_aUJ8)
- Graphics.Rendering.Chart.Layout: layout1_grid_last :: T (Layout1 x_aW9t y_aW9u) Bool
+ Graphics.Rendering.Chart.Layout: layout1_grid_last :: T (Layout1 x_aUJ8 y_aUJ9) Bool
- Graphics.Rendering.Chart.Layout: layout1_left_axis :: T (Layout1 x_aW9t y_aW9u) (LayoutAxis y_aW9u)
+ Graphics.Rendering.Chart.Layout: layout1_left_axis :: T (Layout1 x_aUJ8 y_aUJ9) (LayoutAxis y_aUJ9)
- Graphics.Rendering.Chart.Layout: layout1_legend :: T (Layout1 x_aW9t y_aW9u) (Maybe LegendStyle)
+ Graphics.Rendering.Chart.Layout: layout1_legend :: T (Layout1 x_aUJ8 y_aUJ9) (Maybe LegendStyle)
- Graphics.Rendering.Chart.Layout: layout1_margin :: T (Layout1 x_aW9t y_aW9u) Double
+ Graphics.Rendering.Chart.Layout: layout1_margin :: T (Layout1 x_aUJ8 y_aUJ9) Double
- Graphics.Rendering.Chart.Layout: layout1_plot_background :: T (Layout1 x_aW9t y_aW9u) (Maybe CairoFillStyle)
+ Graphics.Rendering.Chart.Layout: layout1_plot_background :: T (Layout1 x_aUJ8 y_aUJ9) (Maybe CairoFillStyle)
- Graphics.Rendering.Chart.Layout: layout1_plots :: T (Layout1 x_aW9t y_aW9u) [Either (Plot x_aW9t y_aW9u) (Plot x_aW9t y_aW9u)]
+ Graphics.Rendering.Chart.Layout: layout1_plots :: T (Layout1 x_aUJ8 y_aUJ9) [Either (Plot x_aUJ8 y_aUJ9) (Plot x_aUJ8 y_aUJ9)]
- Graphics.Rendering.Chart.Layout: layout1_right_axis :: T (Layout1 x_aW9t y_aW9u) (LayoutAxis y_aW9u)
+ Graphics.Rendering.Chart.Layout: layout1_right_axis :: T (Layout1 x_aUJ8 y_aUJ9) (LayoutAxis y_aUJ9)
- Graphics.Rendering.Chart.Layout: layout1_title :: T (Layout1 x_aW9t y_aW9u) String
+ Graphics.Rendering.Chart.Layout: layout1_title :: T (Layout1 x_aUJ8 y_aUJ9) String
- Graphics.Rendering.Chart.Layout: layout1_title_style :: T (Layout1 x_aW9t y_aW9u) CairoFontStyle
+ Graphics.Rendering.Chart.Layout: layout1_title_style :: T (Layout1 x_aUJ8 y_aUJ9) CairoFontStyle
- Graphics.Rendering.Chart.Layout: layout1_top_axis :: T (Layout1 x_aW9t y_aW9u) (LayoutAxis x_aW9t)
+ Graphics.Rendering.Chart.Layout: layout1_top_axis :: T (Layout1 x_aUJ8 y_aUJ9) (LayoutAxis x_aUJ8)
- Graphics.Rendering.Chart.Layout: layout1_yaxes_control :: T (Layout1 x_aW9t y_aW9u) (([y_aW9u], [y_aW9u]) -> ([y_aW9u], [y_aW9u]))
+ Graphics.Rendering.Chart.Layout: layout1_yaxes_control :: T (Layout1 x_aUJ8 y_aUJ9) (([y_aUJ9], [y_aUJ9]) -> ([y_aUJ9], [y_aUJ9]))
- Graphics.Rendering.Chart.Plot.Annotation: plot_annotation_angle :: T (PlotAnnotation x_aR3b y_aR3c) Double
+ Graphics.Rendering.Chart.Plot.Annotation: plot_annotation_angle :: T (PlotAnnotation x_aQhq y_aQhr) Double
- Graphics.Rendering.Chart.Plot.Annotation: plot_annotation_hanchor :: T (PlotAnnotation x_aR3b y_aR3c) HTextAnchor
+ Graphics.Rendering.Chart.Plot.Annotation: plot_annotation_hanchor :: T (PlotAnnotation x_aQhq y_aQhr) HTextAnchor
- Graphics.Rendering.Chart.Plot.Annotation: plot_annotation_style :: T (PlotAnnotation x_aR3b y_aR3c) CairoFontStyle
+ Graphics.Rendering.Chart.Plot.Annotation: plot_annotation_style :: T (PlotAnnotation x_aQhq y_aQhr) CairoFontStyle
- Graphics.Rendering.Chart.Plot.Annotation: plot_annotation_values :: T (PlotAnnotation x_aR3b y_aR3c) [(x_aR3b, y_aR3c, String)]
+ Graphics.Rendering.Chart.Plot.Annotation: plot_annotation_values :: T (PlotAnnotation x_aQhq y_aQhr) [(x_aQhq, y_aQhr, String)]
- Graphics.Rendering.Chart.Plot.Annotation: plot_annotation_vanchor :: T (PlotAnnotation x_aR3b y_aR3c) VTextAnchor
+ Graphics.Rendering.Chart.Plot.Annotation: plot_annotation_vanchor :: T (PlotAnnotation x_aQhq y_aQhr) VTextAnchor
- Graphics.Rendering.Chart.Plot.AreaSpots: AreaSpots :: String -> Double -> AlphaColour Double -> AlphaColour Double -> Double -> [(x, y, z)] -> AreaSpots z x y
+ Graphics.Rendering.Chart.Plot.AreaSpots: AreaSpots :: String -> Double -> AlphaColour Double -> Colour Double -> Double -> Double -> [(x, y, z)] -> AreaSpots z x y
- Graphics.Rendering.Chart.Plot.AreaSpots: AreaSpots4D :: String -> Double -> [Colour Double] -> Double -> [(x, y, z, t)] -> AreaSpots4D z t x y
+ Graphics.Rendering.Chart.Plot.AreaSpots: AreaSpots4D :: String -> Double -> [Colour Double] -> Double -> Double -> [(x, y, z, t)] -> AreaSpots4D z t x y
- Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_4d_linethick :: T (AreaSpots4D z_aRuA t_aRuB x_aRuC y_aRuD) Double
+ Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_4d_linethick :: T (AreaSpots4D z_aQGX t_aQGY x_aQGZ y_aQH0) Double
- Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_4d_max_radius :: T (AreaSpots4D z_aRuA t_aRuB x_aRuC y_aRuD) Double
+ Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_4d_max_radius :: T (AreaSpots4D z_aQGX t_aQGY x_aQGZ y_aQH0) Double
- Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_4d_palette :: T (AreaSpots4D z_aRuA t_aRuB x_aRuC y_aRuD) [Colour Double]
+ Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_4d_palette :: T (AreaSpots4D z_aQGX t_aQGY x_aQGZ y_aQH0) [Colour Double]
- Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_4d_title :: T (AreaSpots4D z_aRuA t_aRuB x_aRuC y_aRuD) String
+ Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_4d_title :: T (AreaSpots4D z_aQGX t_aQGY x_aQGZ y_aQH0) String
- Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_4d_values :: T (AreaSpots4D z_aRuA t_aRuB x_aRuC y_aRuD) [(x_aRuC, y_aRuD, z_aRuA, t_aRuB)]
+ Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_4d_values :: T (AreaSpots4D z_aQGX t_aQGY x_aQGZ y_aQH0) [(x_aQGZ, y_aQH0, z_aQGX, t_aQGY)]
- Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_fillcolour :: T (AreaSpots z_aRuE x_aRuF y_aRuG) (AlphaColour Double)
+ Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_fillcolour :: T (AreaSpots z_aQH1 x_aQH2 y_aQH3) (Colour Double)
- Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_fillcolour_ :: AreaSpots z x y -> AlphaColour Double
+ Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_fillcolour_ :: AreaSpots z x y -> Colour Double
- Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_linecolour :: T (AreaSpots z_aRuE x_aRuF y_aRuG) (AlphaColour Double)
+ Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_linecolour :: T (AreaSpots z_aQH1 x_aQH2 y_aQH3) (AlphaColour Double)
- Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_linethick :: T (AreaSpots z_aRuE x_aRuF y_aRuG) Double
+ Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_linethick :: T (AreaSpots z_aQH1 x_aQH2 y_aQH3) Double
- Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_max_radius :: T (AreaSpots z_aRuE x_aRuF y_aRuG) Double
+ Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_max_radius :: T (AreaSpots z_aQH1 x_aQH2 y_aQH3) Double
- Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_title :: T (AreaSpots z_aRuE x_aRuF y_aRuG) String
+ Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_title :: T (AreaSpots z_aQH1 x_aQH2 y_aQH3) String
- Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_values :: T (AreaSpots z_aRuE x_aRuF y_aRuG) [(x_aRuF, y_aRuG, z_aRuE)]
+ Graphics.Rendering.Chart.Plot.AreaSpots: area_spots_values :: T (AreaSpots z_aQH1 x_aQH2 y_aQH3) [(x_aQH2, y_aQH3, z_aQH1)]
- Graphics.Rendering.Chart.Plot.Bars: plot_bars_alignment :: T (PlotBars x_aOmM y_aOmN) PlotBarsAlignment
+ Graphics.Rendering.Chart.Plot.Bars: plot_bars_alignment :: T (PlotBars x_aNLj y_aNLk) PlotBarsAlignment
- Graphics.Rendering.Chart.Plot.Bars: plot_bars_item_styles :: T (PlotBars x_aOmM y_aOmN) [(CairoFillStyle, Maybe CairoLineStyle)]
+ Graphics.Rendering.Chart.Plot.Bars: plot_bars_item_styles :: T (PlotBars x_aNLj y_aNLk) [(CairoFillStyle, Maybe CairoLineStyle)]
- Graphics.Rendering.Chart.Plot.Bars: plot_bars_reference :: T (PlotBars x_aOmM y_aOmN) y_aOmN
+ Graphics.Rendering.Chart.Plot.Bars: plot_bars_reference :: T (PlotBars x_aNLj y_aNLk) y_aNLk
- Graphics.Rendering.Chart.Plot.Bars: plot_bars_singleton_width :: T (PlotBars x_aOmM y_aOmN) Double
+ Graphics.Rendering.Chart.Plot.Bars: plot_bars_singleton_width :: T (PlotBars x_aNLj y_aNLk) Double
- Graphics.Rendering.Chart.Plot.Bars: plot_bars_spacing :: T (PlotBars x_aOmM y_aOmN) PlotBarsSpacing
+ Graphics.Rendering.Chart.Plot.Bars: plot_bars_spacing :: T (PlotBars x_aNLj y_aNLk) PlotBarsSpacing
- Graphics.Rendering.Chart.Plot.Bars: plot_bars_style :: T (PlotBars x_aOmM y_aOmN) PlotBarsStyle
+ Graphics.Rendering.Chart.Plot.Bars: plot_bars_style :: T (PlotBars x_aNLj y_aNLk) PlotBarsStyle
- Graphics.Rendering.Chart.Plot.Bars: plot_bars_titles :: T (PlotBars x_aOmM y_aOmN) [String]
+ Graphics.Rendering.Chart.Plot.Bars: plot_bars_titles :: T (PlotBars x_aNLj y_aNLk) [String]
- Graphics.Rendering.Chart.Plot.Bars: plot_bars_values :: T (PlotBars x_aOmM y_aOmN) [(x_aOmM, [y_aOmN])]
+ Graphics.Rendering.Chart.Plot.Bars: plot_bars_values :: T (PlotBars x_aNLj y_aNLk) [(x_aNLj, [y_aNLk])]
- Graphics.Rendering.Chart.Plot.Candle: plot_candle_centre :: T (PlotCandle x_aM3n y_aM3o) Double
+ Graphics.Rendering.Chart.Plot.Candle: plot_candle_centre :: T (PlotCandle x_aLzN y_aLzO) Double
- Graphics.Rendering.Chart.Plot.Candle: plot_candle_fall_fill_style :: T (PlotCandle x_aM3n y_aM3o) CairoFillStyle
+ Graphics.Rendering.Chart.Plot.Candle: plot_candle_fall_fill_style :: T (PlotCandle x_aLzN y_aLzO) CairoFillStyle
- Graphics.Rendering.Chart.Plot.Candle: plot_candle_fill :: T (PlotCandle x_aM3n y_aM3o) Bool
+ Graphics.Rendering.Chart.Plot.Candle: plot_candle_fill :: T (PlotCandle x_aLzN y_aLzO) Bool
- Graphics.Rendering.Chart.Plot.Candle: plot_candle_line_style :: T (PlotCandle x_aM3n y_aM3o) CairoLineStyle
+ Graphics.Rendering.Chart.Plot.Candle: plot_candle_line_style :: T (PlotCandle x_aLzN y_aLzO) CairoLineStyle
- Graphics.Rendering.Chart.Plot.Candle: plot_candle_rise_fill_style :: T (PlotCandle x_aM3n y_aM3o) CairoFillStyle
+ Graphics.Rendering.Chart.Plot.Candle: plot_candle_rise_fill_style :: T (PlotCandle x_aLzN y_aLzO) CairoFillStyle
- Graphics.Rendering.Chart.Plot.Candle: plot_candle_tick_length :: T (PlotCandle x_aM3n y_aM3o) Double
+ Graphics.Rendering.Chart.Plot.Candle: plot_candle_tick_length :: T (PlotCandle x_aLzN y_aLzO) Double
- Graphics.Rendering.Chart.Plot.Candle: plot_candle_title :: T (PlotCandle x_aM3n y_aM3o) String
+ Graphics.Rendering.Chart.Plot.Candle: plot_candle_title :: T (PlotCandle x_aLzN y_aLzO) String
- Graphics.Rendering.Chart.Plot.Candle: plot_candle_values :: T (PlotCandle x_aM3n y_aM3o) [Candle x_aM3n y_aM3o]
+ Graphics.Rendering.Chart.Plot.Candle: plot_candle_values :: T (PlotCandle x_aLzN y_aLzO) [Candle x_aLzN y_aLzO]
- Graphics.Rendering.Chart.Plot.Candle: plot_candle_width :: T (PlotCandle x_aM3n y_aM3o) Double
+ Graphics.Rendering.Chart.Plot.Candle: plot_candle_width :: T (PlotCandle x_aLzN y_aLzO) Double
- Graphics.Rendering.Chart.Plot.ErrBars: plot_errbars_line_style :: T (PlotErrBars x_aKfU y_aKfV) CairoLineStyle
+ Graphics.Rendering.Chart.Plot.ErrBars: plot_errbars_line_style :: T (PlotErrBars x_aJVZ y_aJW0) CairoLineStyle
- Graphics.Rendering.Chart.Plot.ErrBars: plot_errbars_overhang :: T (PlotErrBars x_aKfU y_aKfV) Double
+ Graphics.Rendering.Chart.Plot.ErrBars: plot_errbars_overhang :: T (PlotErrBars x_aJVZ y_aJW0) Double
- Graphics.Rendering.Chart.Plot.ErrBars: plot_errbars_tick_length :: T (PlotErrBars x_aKfU y_aKfV) Double
+ Graphics.Rendering.Chart.Plot.ErrBars: plot_errbars_tick_length :: T (PlotErrBars x_aJVZ y_aJW0) Double
- Graphics.Rendering.Chart.Plot.ErrBars: plot_errbars_title :: T (PlotErrBars x_aKfU y_aKfV) String
+ Graphics.Rendering.Chart.Plot.ErrBars: plot_errbars_title :: T (PlotErrBars x_aJVZ y_aJW0) String
- Graphics.Rendering.Chart.Plot.ErrBars: plot_errbars_values :: T (PlotErrBars x_aKfU y_aKfV) [ErrPoint x_aKfU y_aKfV]
+ Graphics.Rendering.Chart.Plot.ErrBars: plot_errbars_values :: T (PlotErrBars x_aJVZ y_aJW0) [ErrPoint x_aJVZ y_aJW0]
- Graphics.Rendering.Chart.Plot.FillBetween: plot_fillbetween_style :: T (PlotFillBetween x_aJGR y_aJGS) CairoFillStyle
+ Graphics.Rendering.Chart.Plot.FillBetween: plot_fillbetween_style :: T (PlotFillBetween x_aJp6 y_aJp7) CairoFillStyle
- Graphics.Rendering.Chart.Plot.FillBetween: plot_fillbetween_title :: T (PlotFillBetween x_aJGR y_aJGS) String
+ Graphics.Rendering.Chart.Plot.FillBetween: plot_fillbetween_title :: T (PlotFillBetween x_aJp6 y_aJp7) String
- Graphics.Rendering.Chart.Plot.FillBetween: plot_fillbetween_values :: T (PlotFillBetween x_aJGR y_aJGS) [(x_aJGR, (y_aJGS, y_aJGS))]
+ Graphics.Rendering.Chart.Plot.FillBetween: plot_fillbetween_values :: T (PlotFillBetween x_aJp6 y_aJp7) [(x_aJp6, (y_aJp7, y_aJp7))]
- Graphics.Rendering.Chart.Plot.Lines: plot_lines_limit_values :: T (PlotLines x_aIwr y_aIws) [[(Limit x_aIwr, Limit y_aIws)]]
+ Graphics.Rendering.Chart.Plot.Lines: plot_lines_limit_values :: T (PlotLines x_aIjr y_aIjs) [[(Limit x_aIjr, Limit y_aIjs)]]
- Graphics.Rendering.Chart.Plot.Lines: plot_lines_style :: T (PlotLines x_aIwr y_aIws) CairoLineStyle
+ Graphics.Rendering.Chart.Plot.Lines: plot_lines_style :: T (PlotLines x_aIjr y_aIjs) CairoLineStyle
- Graphics.Rendering.Chart.Plot.Lines: plot_lines_title :: T (PlotLines x_aIwr y_aIws) String
+ Graphics.Rendering.Chart.Plot.Lines: plot_lines_title :: T (PlotLines x_aIjr y_aIjs) String
- Graphics.Rendering.Chart.Plot.Lines: plot_lines_values :: T (PlotLines x_aIwr y_aIws) [[(x_aIwr, y_aIws)]]
+ Graphics.Rendering.Chart.Plot.Lines: plot_lines_values :: T (PlotLines x_aIjr y_aIjs) [[(x_aIjr, y_aIjs)]]
- Graphics.Rendering.Chart.Plot.Points: plot_points_style :: T (PlotPoints x_aJeD y_aJeE) CairoPointStyle
+ Graphics.Rendering.Chart.Plot.Points: plot_points_style :: T (PlotPoints x_aIYF y_aIYG) CairoPointStyle
- Graphics.Rendering.Chart.Plot.Points: plot_points_title :: T (PlotPoints x_aJeD y_aJeE) String
+ Graphics.Rendering.Chart.Plot.Points: plot_points_title :: T (PlotPoints x_aIYF y_aIYG) String
- Graphics.Rendering.Chart.Plot.Points: plot_points_values :: T (PlotPoints x_aJeD y_aJeE) [(x_aJeD, y_aJeE)]
+ Graphics.Rendering.Chart.Plot.Points: plot_points_values :: T (PlotPoints x_aIYF y_aIYG) [(x_aIYF, y_aIYG)]
- Graphics.Rendering.Chart.Plot.Types: plot_all_points :: T (Plot x_aHux y_aHuy) ([x_aHux], [y_aHuy])
+ Graphics.Rendering.Chart.Plot.Types: plot_all_points :: T (Plot x_aHkT y_aHkU) ([x_aHkT], [y_aHkU])
- Graphics.Rendering.Chart.Plot.Types: plot_legend :: T (Plot x_aHux y_aHuy) [(String, Rect -> CRender ())]
+ Graphics.Rendering.Chart.Plot.Types: plot_legend :: T (Plot x_aHkT y_aHkU) [(String, Rect -> CRender ())]
- Graphics.Rendering.Chart.Plot.Types: plot_render :: T (Plot x_aHux y_aHuy) (PointMapFn x_aHux y_aHuy -> CRender ())
+ Graphics.Rendering.Chart.Plot.Types: plot_render :: T (Plot x_aHkT y_aHkU) (PointMapFn x_aHkT y_aHkU -> CRender ())

Files

Chart.cabal view
@@ -1,5 +1,5 @@ Name: Chart-Version: 0.15+Version: 0.16 License: BSD3 License-file: LICENSE Copyright: Tim Docker, 2006-2010@@ -70,3 +70,4 @@         Graphics.Rendering.Chart.Plot.Lines,         Graphics.Rendering.Chart.Plot.Pie,         Graphics.Rendering.Chart.Plot.Points+        Graphics.Rendering.Chart.SparkLine
Graphics/Rendering/Chart/Axis/Floating.hs view
@@ -18,6 +18,7 @@     LogAxisParams(..),     defaultLinearAxis,     defaultLogAxis,+    scaledAxis,     autoScaledAxis,     autoScaledLogAxis,     autoSteps,@@ -91,14 +92,12 @@     la_nTicks_    = 50 } --- | Generate a linear axis automatically, scaled appropriately for the--- input data.-autoScaledAxis :: RealFloat a => LinearAxisParams a -> AxisFn a-autoScaledAxis lap ps0 = makeAxis' realToFrac realToFrac-                                   (la_labelf_ lap) (labelvs,tickvs,gridvs)+-- | Generate a linear axis with the specified bounds+scaledAxis :: RealFloat a => LinearAxisParams a -> (a,a) -> AxisFn a+scaledAxis lap (min,max) ps0 = makeAxis' realToFrac realToFrac+                                         (la_labelf_ lap) (labelvs,tickvs,gridvs)   where     ps        = filter isValidNumber ps0-    (min,max) = (minimum ps,maximum ps)     range []  = (0,1)     range _   | min == max = if min==0 then (-1,1) else                              let d = abs (min * 0.01) in (min-d,max+d)@@ -108,6 +107,13 @@                                          (minimum labelvs,maximum labelvs)     gridvs    = labelvs     r         = range ps++-- | Generate a linear axis automatically, scaled appropriately for the+-- input data.+autoScaledAxis :: RealFloat a => LinearAxisParams a -> AxisFn a+autoScaledAxis lap ps0 = scaledAxis lap (min,max) ps0+  where+    (min,max) = (minimum ps0,maximum ps0)  steps :: RealFloat a => a -> (a,a) -> [Rational] steps nSteps (min,max) = map ((s*) . fromIntegral) [min' .. max']
Graphics/Rendering/Chart/Axis/Int.hs view
@@ -11,6 +11,7 @@  module Graphics.Rendering.Chart.Axis.Int(     defaultIntAxis,+    scaledIntAxis,     autoScaledIntAxis ) where @@ -38,10 +39,15 @@  autoScaledIntAxis :: (Integral i, PlotValue i) =>                      LinearAxisParams i -> AxisFn i-autoScaledIntAxis lap ps =-    makeAxis (la_labelf_ lap) (labelvs,tickvs,gridvs)+autoScaledIntAxis lap ps = scaledIntAxis lap (min,max) ps   where     (min,max) = (minimum ps,maximum ps)++scaledIntAxis :: (Integral i, PlotValue i) =>+                 LinearAxisParams i -> (i,i) -> AxisFn i+scaledIntAxis lap (min,max) ps =+    makeAxis (la_labelf_ lap) (labelvs,tickvs,gridvs)+  where     range []  = (0,1)     range _   | min == max = (fromIntegral $ min-1, fromIntegral $ min+1)               | otherwise  = (fromIntegral $ min,   fromIntegral $ max)
Graphics/Rendering/Chart/Layout.hs view
@@ -342,15 +342,20 @@ 	  in plot_render_ p pmfn     rPlot1 _ _ _ = return () -    pickfn (Point x y) = case (lAxis,rAxis) of-            (Just at,Nothing)   -> Just $ L1P_PlotArea xv (mapy at y)  (mapy at y)-            (Nothing,Just at)   -> Just $ L1P_PlotArea xv (mapy at y)  (mapy at y)-            (Just at1,Just at2) -> Just $ L1P_PlotArea xv (mapy at1 y) (mapy at2 y)-            (Nothing,Nothing)   -> Nothing+    pickfn (Point x y) = do  -- Maybe monad+        xat <- mxat+        (yat1,yat2) <- myats+        return (L1P_PlotArea (mapx xat x) (mapy yat1 y)  (mapy yat2 y))       where-        xv = case (bAxis,tAxis) of-            (Just at,_) -> mapx at x-            (_,Just at) -> mapx at x+        mxat = case (bAxis,tAxis) of+            (Just at,_)       -> Just at+            (_,Just at)       -> Just at+            (Nothing,Nothing) -> Nothing+        myats = case (lAxis,rAxis) of+            (Just at,Nothing)   -> Just (at,at)+            (Nothing,Just at)   -> Just (at,at)+            (Just at1,Just at2) -> Just (at1,at2)+            (Nothing,Nothing)   -> Nothing         mapx (AxisT _ _ rev ad) x = axis_tropweiv_ ad (reverse rev xr) x         mapy (AxisT _ _ rev ad) y = axis_tropweiv_ ad (reverse rev yr) y 
Graphics/Rendering/Chart/Plot/AreaSpots.hs view
@@ -59,7 +59,8 @@   { area_spots_title_      :: String   , area_spots_linethick_  :: Double   , area_spots_linecolour_ :: AlphaColour Double-  , area_spots_fillcolour_ :: AlphaColour Double+  , area_spots_fillcolour_ :: Colour Double+  , area_spots_opacity_    :: Double   , area_spots_max_radius_ :: Double	-- ^ the largest size of spot   , area_spots_values_     :: [(x,y,z)]   }@@ -69,7 +70,8 @@   { area_spots_title_      = ""   , area_spots_linethick_  = 0.1   , area_spots_linecolour_ = opaque blue-  , area_spots_fillcolour_ = flip withOpacity 0.2 blue+  , area_spots_fillcolour_ = blue+  , area_spots_opacity_    = 0.2   , area_spots_max_radius_ = 20  -- in pixels   , area_spots_values_     = []   }@@ -88,8 +90,10 @@                     (area_spots_values_ p))           (\ (x,y,z)-> do               let radius = sqrt z-              let (CairoPointStyle drawSpotAt)    = filledCircles radius-                                                      (area_spots_fillcolour_ p)+              let (CairoPointStyle drawSpotAt)    = filledCircles radius $+                                                    flip withOpacity +                                                      (area_spots_opacity_ p) $+                                                    area_spots_fillcolour_ p               drawSpotAt (pmap (LValue x, LValue y))               let (CairoPointStyle drawOutlineAt) = hollowCircles radius                                                       (area_spots_linethick_ p)@@ -106,8 +110,10 @@ renderSpotLegend p r@(Rect p1 p2) = preserveCState $ do     let radius = min (abs (p_y p1 - p_y p2)) (abs (p_x p1 - p_x p2))         centre = linearInterpolate p1 p2-    let (CairoPointStyle drawSpotAt)    = filledCircles radius-                                            (area_spots_fillcolour_ p)+    let (CairoPointStyle drawSpotAt)    = filledCircles radius $+                                          flip withOpacity +                                               (area_spots_opacity_ p) $+                                          area_spots_fillcolour_ p     drawSpotAt centre     let (CairoPointStyle drawOutlineAt) = hollowCircles radius                                             (area_spots_linethick_ p)@@ -126,6 +132,7 @@   { area_spots_4d_title_      :: String   , area_spots_4d_linethick_  :: Double   , area_spots_4d_palette_    :: [Colour Double]+  , area_spots_4d_opacity_    :: Double   , area_spots_4d_max_radius_ :: Double	-- ^ the largest size of spot   , area_spots_4d_values_     :: [(x,y,z,t)]   }@@ -135,6 +142,7 @@   { area_spots_4d_title_      = ""   , area_spots_4d_linethick_  = 0.1   , area_spots_4d_palette_    = [ blue, green, yellow, orange, red ]+  , area_spots_4d_opacity_    = 0.2   , area_spots_4d_max_radius_ = 20  -- in pixels   , area_spots_4d_values_     = []   }@@ -157,7 +165,8 @@               let radius  = sqrt z               let colour  = (area_spots_4d_palette_ p) !! t                let (CairoPointStyle drawSpotAt)-                    = filledCircles radius (flip withOpacity 0.2 colour)+                    = filledCircles radius $+                          flip withOpacity (area_spots_4d_opacity_ p) $ colour               drawSpotAt (pmap (LValue x, LValue y))               let (CairoPointStyle drawOutlineAt)                     = hollowCircles radius (area_spots_4d_linethick_ p)@@ -183,9 +192,10 @@ renderSpotLegend4D p r@(Rect p1 p2) = preserveCState $ do     let radius = min (abs (p_y p1 - p_y p2)) (abs (p_x p1 - p_x p2))         centre = linearInterpolate p1 p2-    let (CairoPointStyle drawSpotAt)    = filledCircles radius-                                            (flip withOpacity 0.2 $-                                             head (area_spots_4d_palette_ p))+    let (CairoPointStyle drawSpotAt)    = filledCircles radius $+                                          flip withOpacity+                                               (area_spots_4d_opacity_ p) $+                                          head $ area_spots_4d_palette_ p     drawSpotAt centre     let (CairoPointStyle drawOutlineAt) = hollowCircles radius                                             (area_spots_4d_linethick_ p)
+ Graphics/Rendering/Chart/SparkLine.hs view
@@ -0,0 +1,169 @@+---------------------------------------------------------------+-- |+-- Module      : Graphics.Rendering.Chart.Sparkline+-- Copyright   : (c) Hitesh Jasani, 2008, Malcolm Wallace 2011+-- License     : BSD3+--+-- Created     : 2008-02-26+-- Modified    : 2011-02-11+-- Version     : 0.2+--+-- Sparklines implementation in Haskell.  Sparklines are+-- mini graphs inspired by Edward Tufte.+--+-- The original implementation (by Hitesh Jasani) used the gd+-- package as a backend renderer, and is still available at+--     http://hackage.haskell.org/package/hsparklines+-- The present version uses Cairo as its renderer, and integrates with+-- the Chart package, in the sense that Sparklines are just another+-- kind of (ToRenderable a => a), so can be composed into grids etc.+--+-- > dp :: [Double]+-- > dp = [24,21,32.3,24,15,34,43,55,57,72,74,75,73,72,55,44]+-- >+-- > sparkLineToPNG "bar_spark.png" (SparkLine barSpark dp)+-- >+---------------------------------------------------------------++module Graphics.Rendering.Chart.SparkLine+  ( -- * SparkLine type+    SparkLine(..)+    -- * Drawing options+  , SparkOptions(..)+  , smoothSpark+  , barSpark+    -- * Size calculation+  , sparkSize+    -- * Rendering function+  , renderSparkLine+  , sparkLineToPNG+  , sparkLineToPDF+  ) where++import Control.Monad+import Data.List+import Data.Ord+import Graphics.Rendering.Chart.Types+import Graphics.Rendering.Chart.Renderable+import Data.Colour+import Data.Colour.Names++-- | A sparkline is a single sequence of data values, treated as y-values.+--   The x-values are anonymous and implicit in the sequence.+data SparkLine = SparkLine { sl_options :: SparkOptions+                           , sl_data    :: [Double]+                           }++-- | Options to render the sparklines in different ways.+data SparkOptions = SparkOptions+  { so_smooth     :: Bool            -- ^ smooth or bars+  , so_step       :: Int             -- ^ step size+  , so_height     :: Int             -- ^ graph height (pixels)+  , so_limits     :: (Double,Double) -- ^ data point limits+  , so_bgColor    :: Colour Double   -- ^ background color+  , so_minColor   :: Colour Double   -- ^ color of minimum datapoint+  , so_maxColor   :: Colour Double   -- ^ color of maximum datapoint+  , so_lastColor  :: Colour Double   -- ^ color of last datapoint+  , so_minMarker  :: Bool            -- ^ display minimum marker+  , so_maxMarker  :: Bool            -- ^ display maximum marker+  , so_lastMarker :: Bool            -- ^ display last marker+  } deriving (Show)++-- | Default options for a smooth sparkline.+smoothSpark :: SparkOptions+smoothSpark  = SparkOptions+  { so_smooth     = True+  , so_step       = 2+  , so_height     = 20+  , so_limits     = (0,100)+  , so_bgColor    = white+  , so_minColor   = red+  , so_maxColor   = green+  , so_lastColor  = blue+  , so_minMarker  = True+  , so_maxMarker  = True+  , so_lastMarker = True+  }++-- | Default options for a barchart sparkline.+barSpark :: SparkOptions+barSpark  = smoothSpark { so_smooth=False }++instance ToRenderable SparkLine where+    toRenderable sp = Renderable+            { minsize = return (0, fromIntegral (so_height (sl_options sp)))+            , render  = \_rect-> renderSparkLine sp+            }++-- | Compute the width of a SparkLine, for rendering purposes.+sparkWidth :: SparkLine -> Int+sparkWidth SparkLine{sl_options=opt, sl_data=ds} =+  let w = 4 + (so_step opt) * (length ds - 1) + extrawidth+      extrawidth | so_smooth opt = 0+                 | otherwise  = bw * length ds+      bw | so_smooth opt = 0+         | otherwise  = 2+  in w++sparkSize :: SparkLine -> (Int,Int)+sparkSize s = (sparkWidth s, so_height (sl_options s))++-- | Render a SparkLine to a drawing surface using cairo.+renderSparkLine :: SparkLine -> CRender (PickFn ())+renderSparkLine SparkLine{sl_options=opt, sl_data=ds} =+  let w = 4 + (so_step opt) * (length ds - 1) + extrawidth+      extrawidth | so_smooth opt = 0+                 | otherwise  = bw * length ds+      bw | so_smooth opt = 0+         | otherwise  = 2+      h = so_height opt +      dmin = fst (so_limits opt)+      dmax = snd (so_limits opt)+      coords = zipWith (\x y-> Point (fi x) y)+                       [1,(1+bw+so_step opt)..(1+(so_step opt+bw)*(length ds))]+                       [ fi h - ( (y-dmin) /+                                  ((dmax-dmin+1) / fi (h-4)) )+                         | y <- ds ]+      -- remember y increases as we go down the page+      minpt = maximumBy (comparing p_y) coords+      maxpt = minimumBy (comparing p_y) coords+      endpt = last coords+      boxpt :: Point -> Rect+      boxpt (Point x y) = Rect (Point (x-1)(y-1)) (Point (x+1)(y+1))+      fi    :: (Num b, Integral a) => a -> b+      fi    = fromIntegral+  in preserveCState $ do++  setFillStyle (solidFillStyle (opaque (so_bgColor opt)))+  fillPath (rectPath (Rect (Point 0 0) (Point (fi w) (fi h))))+  if so_smooth opt+    then do+      setLineStyle (solidLine 1 (opaque grey))+      strokePath coords+    else do+      setFillStyle (solidFillStyle (opaque grey))+      forM_ coords $ \ (Point x y) ->+          fillPath (rectPath (Rect (Point (x-1) y) (Point (x+1) (fi h))))+  when (so_minMarker opt) $ do+      setFillStyle (solidFillStyle (opaque (so_minColor opt)))+      fillPath (rectPath (boxpt minpt))+  when (so_maxMarker opt) $ do+      setFillStyle (solidFillStyle (opaque (so_maxColor opt)))+      fillPath (rectPath (boxpt maxpt))+  when (so_lastMarker opt) $ do+      setFillStyle (solidFillStyle (opaque (so_lastColor opt)))+      fillPath (rectPath (boxpt endpt))+  return nullPickFn++-- | Generate a PNG for the sparkline, using its natural size.+sparkLineToPNG :: FilePath -> SparkLine -> IO (PickFn ())+sparkLineToPNG fp sp = renderableToPNGFile (toRenderable sp)+                                           (sparkWidth sp)+                                           (so_height (sl_options sp))+                                           fp+-- | Generate a PDF for the sparkline, using its natural size.+sparkLineToPDF :: FilePath -> SparkLine -> IO ()+sparkLineToPDF fp sp = renderableToPDFFile (toRenderable sp)+                                           (sparkWidth sp)+                                           (so_height (sl_options sp))+                                           fp
Graphics/Rendering/Chart/Types.hs view
@@ -316,9 +316,7 @@     c $ setSourceColor (line_color_ ls)     c $ C.setLineCap (line_cap_ ls)     c $ C.setLineJoin (line_join_ ls)-    case line_dashes_ ls of-      [] -> return ()-      ds -> c $ C.setDash ds 0+    c $ C.setDash (line_dashes_ ls) 0  setFillStyle :: CairoFillStyle -> CRender () setFillStyle (CairoFillStyle s) = s
tests/all_tests.hs view
@@ -30,6 +30,7 @@ import qualified Test15 import qualified Test17 import qualified TestParametric+import qualified TestSparkLines  data OutputType = PNG | PS | PDF | SVG @@ -327,58 +328,61 @@     }  -----------------------------------------------------------------------allTests :: [ (String, OutputType -> Renderable ()) ]+stdSize = (640,480)++allTests :: [ (String, (Int,Int), OutputType -> Renderable ()) ] allTests =-     [ ("test1",  \o -> Test1.chart (chooseLineWidth o) )-     , ("test1a", \o -> test1a (chooseLineWidth o) )-     , ("test2a", \o -> Test2.chart prices    False (chooseLineWidth o))-     , ("test2b", \o -> Test2.chart prices1   False (chooseLineWidth o))-     , ("test2c", \o -> Test2.chart prices2   False (chooseLineWidth o))-     , ("test2d", \o -> Test2.chart prices5   True  (chooseLineWidth o))-     , ("test2e", \o -> Test2.chart prices6   True  (chooseLineWidth o))-     , ("test2f", \o -> Test2.chart prices7   True  (chooseLineWidth o))-     , ("test2g", \o -> Test2.chart prices3   False (chooseLineWidth o))-     , ("test2h", \o -> Test2.chart prices8   True  (chooseLineWidth o))-     , ("test2i", \o -> Test2.chart prices9   True  (chooseLineWidth o))-     , ("test2j", \o -> Test2.chart prices10  True  (chooseLineWidth o))-     , ("test2k", \o -> Test2.chart prices10a True  (chooseLineWidth o))-     , ("test2m", \o -> Test2.chart prices11  True  (chooseLineWidth o))-     , ("test2n", \o -> Test2.chart prices10b True  (chooseLineWidth o))-     , ("test2o", \o -> Test2.chart prices12  True  (chooseLineWidth o))-     , ("test2p", \o -> Test2.chart prices13  True  (chooseLineWidth o))-     , ("test2q", \o -> Test2.chart prices13a True  (chooseLineWidth o))-     , ("test2r", \o -> Test2.chart prices13b True  (chooseLineWidth o))-     , ("test2s", \o -> Test2.chart prices14  True  (chooseLineWidth o))-     , ("test2t", \o -> Test2.chart prices14a True  (chooseLineWidth o))-     , ("test2u", \o -> Test2.chart prices14b True  (chooseLineWidth o))-     , ("test2v", \o -> Test2.chart prices14c True  (chooseLineWidth o))-     , ("test2w", \o -> Test2.chart prices14d True  (chooseLineWidth o))-     , ("test3",  const Test3.chart)-     , ("test4a", const (Test4.chart False False))-     , ("test4b", const (Test4.chart True False))-     , ("test4c", const (Test4.chart False True))-     , ("test4d", test4d)-     , ("test5", \o -> Test5.chart (chooseLineWidth o))-     , ("test6", const Test6.chart)-     , ("test7", const Test7.chart)-     , ("test8", const Test8.chart)-     , ("test9", const (Test9.chart True))-     , ("test9b", const (Test9.chart False))-     , ("test9c", test9 BarsCentered)-     , ("test9l", test9 BarsLeft)-     , ("test9r", test9 BarsRight)-     , ("test10", test10 prices1)-     , ("test11", test11)-     , ("test12", test12)-     , ("test13", test13)-     , ("test14", \o -> Test14.chart (chooseLineWidth o) )-     , ("test14a", \o -> Test14a.chart (chooseLineWidth o) )-     , ("test15a", const (Test15.chart (LORows 2)))-     , ("test15b", const (Test15.chart (LOCols 2)))-     , ("test17",  \o -> Test17.chart (chooseLineWidth o))-     , ("misc1", setPickFn nullPickFn . misc1 0)-     , ("misc1a", setPickFn nullPickFn . misc1 45)-     , ("parametric", \o -> TestParametric.chart (chooseLineWidth o) )+     [ ("test1",  stdSize, \o -> Test1.chart (chooseLineWidth o) )+     , ("test1a", stdSize, \o -> test1a (chooseLineWidth o) )+     , ("test2a", stdSize, \o -> Test2.chart prices    False (chooseLineWidth o))+     , ("test2b", stdSize, \o -> Test2.chart prices1   False (chooseLineWidth o))+     , ("test2c", stdSize, \o -> Test2.chart prices2   False (chooseLineWidth o))+     , ("test2d", stdSize, \o -> Test2.chart prices5   True  (chooseLineWidth o))+     , ("test2e", stdSize, \o -> Test2.chart prices6   True  (chooseLineWidth o))+     , ("test2f", stdSize, \o -> Test2.chart prices7   True  (chooseLineWidth o))+     , ("test2g", stdSize, \o -> Test2.chart prices3   False (chooseLineWidth o))+     , ("test2h", stdSize, \o -> Test2.chart prices8   True  (chooseLineWidth o))+     , ("test2i", stdSize, \o -> Test2.chart prices9   True  (chooseLineWidth o))+     , ("test2j", stdSize, \o -> Test2.chart prices10  True  (chooseLineWidth o))+     , ("test2k", stdSize, \o -> Test2.chart prices10a True  (chooseLineWidth o))+     , ("test2m", stdSize, \o -> Test2.chart prices11  True  (chooseLineWidth o))+     , ("test2n", stdSize, \o -> Test2.chart prices10b True  (chooseLineWidth o))+     , ("test2o", stdSize, \o -> Test2.chart prices12  True  (chooseLineWidth o))+     , ("test2p", stdSize, \o -> Test2.chart prices13  True  (chooseLineWidth o))+     , ("test2q", stdSize, \o -> Test2.chart prices13a True  (chooseLineWidth o))+     , ("test2r", stdSize, \o -> Test2.chart prices13b True  (chooseLineWidth o))+     , ("test2s", stdSize, \o -> Test2.chart prices14  True  (chooseLineWidth o))+     , ("test2t", stdSize, \o -> Test2.chart prices14a True  (chooseLineWidth o))+     , ("test2u", stdSize, \o -> Test2.chart prices14b True  (chooseLineWidth o))+     , ("test2v", stdSize, \o -> Test2.chart prices14c True  (chooseLineWidth o))+     , ("test2w", stdSize, \o -> Test2.chart prices14d True  (chooseLineWidth o))+     , ("test3",  stdSize,  const Test3.chart)+     , ("test4a", stdSize, const (Test4.chart False False))+     , ("test4b", stdSize, const (Test4.chart True False))+     , ("test4c", stdSize, const (Test4.chart False True))+     , ("test4d", stdSize, test4d)+     , ("test5",  stdSize, \o -> Test5.chart (chooseLineWidth o))+     , ("test6",  stdSize, const Test6.chart)+     , ("test7",  stdSize, const Test7.chart)+     , ("test8",  stdSize, const Test8.chart)+     , ("test9",  stdSize, const (Test9.chart True))+     , ("test9b", stdSize, const (Test9.chart False))+     , ("test9c", stdSize, test9 BarsCentered)+     , ("test9l", stdSize, test9 BarsLeft)+     , ("test9r", stdSize, test9 BarsRight)+     , ("test10", stdSize, test10 prices1)+     , ("test11", stdSize, test11)+     , ("test12", stdSize, test12)+     , ("test13", stdSize, test13)+     , ("test14", stdSize, \o -> Test14.chart (chooseLineWidth o) )+     , ("test14a", stdSize, \o -> Test14a.chart (chooseLineWidth o) )+     , ("test15a", stdSize, const (Test15.chart (LORows 2)))+     , ("test15b", stdSize, const (Test15.chart (LOCols 2)))+     , ("test17", stdSize,  \o -> Test17.chart (chooseLineWidth o))+     , ("misc1",  stdSize, setPickFn nullPickFn . misc1 0)+     , ("misc1a", stdSize, setPickFn nullPickFn . misc1 45)+     , ("parametric", stdSize, \o -> TestParametric.chart (chooseLineWidth o) )+     , ("sparklines", TestSparkLines.chartSize, const TestSparkLines.chart )      ]  main = do@@ -392,20 +396,20 @@ main1 ("--png":tests) = showTests tests renderToPNG main1 tests = showTests tests renderToPNG -showTests :: [String] -> ((String,OutputType -> Renderable ()) -> IO()) -> IO ()+showTests :: [String] -> ((String,(Int,Int),OutputType -> Renderable ()) -> IO()) -> IO () showTests tests ofn = mapM_ doTest (filter (match tests) allTests)    where-     doTest (s,f) = do+     doTest (s,size,f) = do        putStrLn (s ++ "... ")-       ofn (s,f)+       ofn (s,size,f)       -match :: [String] -> (String,a) -> Bool+match :: [String] -> (String,s,a) -> Bool match [] t = True-match ts t = (fst t) `elem` ts+match ts (s,_,_) = s `elem` ts -renderToPNG (n,ir) = renderableToPNGFile (ir PNG) 640 480 (n ++ ".png")-                     >> return ()-renderToPS (n,ir) = renderableToPSFile (ir PS) 640 480 (n ++ ".ps")-renderToPDF (n,ir) = renderableToPDFFile (ir PDF) 640 480 (n ++ ".pdf")-renderToSVG (n,ir) = renderableToSVGFile (ir SVG) 640 480 (n ++ ".svg")+renderToPNG (n,(w,h),ir) = renderableToPNGFile (ir PNG) w h (n ++ ".png")+                           >> return ()+renderToPS  (n,(w,h),ir) = renderableToPSFile (ir PS) w h (n ++ ".ps")+renderToPDF (n,(w,h),ir) = renderableToPDFFile (ir PDF) w h (n ++ ".pdf")+renderToSVG (n,(w,h),ir) = renderableToSVGFile (ir SVG) w h (n ++ ".svg")