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 (except for the filename required by plotPDF and plotPS), 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.
renderableToWindow (toRenderable $ plotLayout $ plot [0,0.1..10] sin "sin(x)") 640 480
plotWindow [0,1,3,4,8] [12,15,1,5,8] "o" "points"
plotPDF "foo.pdf" [0,0.1..10] sin "- " cos ". " cos "o"
plotPS "foo.ps" [0,0.1..10] (sin . exp) "- " (sin . exp) "o-"
- plot :: PlotType a => a
- data PlotKind
- xcoords :: [Double] -> UPlot
- plotWindow :: PlotWindowType a => a
- plotPDF :: PlotPDFType a => String -> a
- plotPS :: PlotPSType a => String -> a
- plotLayout :: Layout1DDD -> Layout1 Double Double
- plotPNG :: PlotPNGType a => String -> a
- data Layout1DDD
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.