Chart-0.15: tests/Test1.hs
module Test1 where
import Graphics.Rendering.Chart
import Data.Colour
import Data.Colour.Names
import Data.Colour.SRGB
import Data.Accessor
import System.Environment(getArgs)
chart lwidth = toRenderable (layout lwidth)
layout :: Double -> Layout1 Double Double
layout lwidth = layout1
where
layout1 = layout1_title ^= "Amplitude Modulation"
$ layout1_plots ^= [Left (toPlot sinusoid1),
Left (toPlot sinusoid2)]
$ layout1_plot_background ^= Just (solidFillStyle $ opaque white)
$ defaultLayout1
am x = (sin (x*pi/45) + 1) / 2 * (sin (x*pi/5))
sinusoid1 = plot_lines_values ^= [[ (x,(am x)) | x <- [0,(0.5)..400]]]
$ plot_lines_style ^= solidLine lwidth (opaque blue)
$ plot_lines_title ^="am"
$ defaultPlotLines
sinusoid2 = plot_points_style ^= filledCircles 2 (opaque red)
$ plot_points_values ^= [ (x,(am x)) | x <- [0,7..400]]
$ plot_points_title ^="am points"
$ defaultPlotPoints
main1 :: [String] -> IO (PickFn ())
main1 ["small"] = renderableToPNGFile (chart 0.25) 320 240 "test1_small.png"
main1 ["big"] = renderableToPNGFile (chart 0.25) 800 600 "test1_big.png"
main = getArgs >>= main1