An even simpler framework for creating 2D charts in Haskell.
The basic idea is to make it as easy to plot as octave, which means that you provide no more information than you wish to provide. We provide four plotting functions, which differ only in their output. One produces a Layout1 that you can customize using other Graphics.Rendering.Chart functions. The other three produce their output directly. All three accept the same input and produce the same plots.
The plot functions accept a variable number of arguments. You must provide a [Double] which defines the points on the x axis, which must precede any of the y values. The y values may either be [Double] or functions. After any given y value, you can give either Strings or PlotKinds describing how you'd like that y printed.
-- this plotters import Graphics.Rendering.Chart.Simple -- rendering instances from 'chart-cairo' package import Graphics.Rendering.Chart.Backend.Cairo
main = do plotPDF "foo.pdf" [0 :: Double, 0.1..10] sin "- " cos ". " cos "o"
plotPS "foo.ps" [0 :: Double, 0.1..10] (sin . exp) "- " (sin . exp) "o-"
- plot :: PlotType a => a
- data PlotKind
- xcoords :: [Double] -> UPlot
- plotPDF :: PlotPDFType a => String -> a
- plotPS :: PlotPSType a => String -> a
- plotLayout :: LayoutDDD -> Layout Double Double
- plotPNG :: PlotPNGType a => String -> a
- data LayoutDDD
- plotWindow :: PlotWindowType a => a
- layoutDddToRenderable :: LayoutDDD -> Renderable (LayoutPick Double Double Double)
- class PlotPDFType t where
- class PlotPSType t where
- class PlotWindowType t where
- uplot :: [UPlot] -> LayoutDDD
The main plotting function. The idea behind PlotType is shamelessly copied from Text.Printf (and is not exported). All you need to know is that your arguments need to be in class PlotArg. And PlotArg consists of functions and [Double] and String and PlotKind or [PlotKind].
Type to define a few simple properties of each plot.