Chart-0.14: A library for generating 2D Charts and Plots



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 "" [0,0.1..10] (sin . exp) "- " (sin . exp) "o-"



plot :: PlotType a => aSource

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].

data PlotKind Source

Type to define a few simple properties of each plot.


xcoords :: [Double] -> UPlotSource

plotWindow :: PlotWindowType a => aSource

Display a plot on the screen.

plotPDF :: PlotPDFType a => String -> aSource

Save a plot as a PDF file.

plotPS :: PlotPSType a => String -> aSource

Save a plot as a postscript file.

plotPNG :: PlotPNGType a => String -> aSource

Save a plot as a png file.