module Test1 where import Graphics.Rendering.Chart import Data.Colour import Data.Colour.Names import Data.Colour.SRGB import Control.Lens import Data.Default.Class import Utils chart :: Double -> Renderable (LayoutPick Double Double Double) chart lwidth = layoutToRenderable (layout lwidth) layout :: Double -> Layout Double Double layout lwidth = layout' where layout' = layout_title .~ "Amplitude Modulation" $ layout_plots .~ [ toPlot sinusoid1 , toPlot sinusoid2 ] $ layout_plot_background .~ Just (solidFillStyle $ opaque white) $ def 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" $ def sinusoid2 = plot_points_style .~ filledCircles 2 (opaque red) $ plot_points_values .~ [ (x,(am x)) | x <- [0,7..400]] $ plot_points_title .~"am points" $ def -- main = main' "test1" (chart 0.25)