module Test15 where 

import Graphics.Rendering.Chart
import Data.Colour
import Data.Colour.Names
import Data.Accessor
import System.Environment(getArgs)

chart lo = toRenderable layout
 where
  layout = 
        layout1_title ^= "Legend Test"
      $ layout1_title_style ^: font_size ^= 10
      $ layout1_bottom_axis ^: laxis_generate ^= autoIndexAxis alabels
      $ layout1_left_axis ^: laxis_override ^= (axisGridHide.axisTicksHide)
      $ layout1_plots ^= [ Left (plotBars bars2) ]
      $ layout1_legend ^= Just lstyle
      $ defaultLayout1 :: Layout1 PlotIndex Double

  bars2 = plot_bars_titles ^= ["A","B","C","D","E","F","G","H","I","J"]
      $ plot_bars_values ^= addIndexes [[2,3,4,2,1,5,6,4,8,1,3],
                                        [7,4,5,6,2,4,4,5,7,8,9]
                                       ]
      $ plot_bars_style ^= BarsClustered
      $ plot_bars_spacing ^= BarsFixGap 30 5
      $ plot_bars_item_styles ^= map mkstyle (cycle defaultColorSeq)
      $ defaultPlotBars

  alabels = [ "X", "Y" ]

  lstyle = legend_orientation ^= lo
         $ defaultLegendStyle

  btitle = ""
  mkstyle c = (solidFillStyle c, Nothing)

main1 :: [String] -> IO (PickFn ())
main1 ["small"]  = renderableToPNGFile (chart (LORows 3)) 320 240 "test15_small.png"
main1 ["big"]    = renderableToPNGFile (chart (LORows 3)) 800 600 "test15_big.png"

main = getArgs >>= main1


