Waterloo plots

All plots in Waterloo share a common model and all extend a single abstract class, the GJAbstractPlot class.
Each plot has a set of core properties common to them all, but not necessarily used by them all. Each has two data vectors, one for x and one for y data, and a custom paintPlot method that either paints something at the specified points (e.g. for a scatter plot), between the points (e.g. for a line plot) or from the point (e.g. for an error bar plot).
To create a custom plot, users can simply add together existing plots (e.g. to create a compound plot showing a scatter plot with points joined and error bars just add together a scatter, line and error bar plot).

The createInstance method

Plots are created by calling a static factory method called createInstance. The default (no argument) public constructor should not normally be used. It is reserved for use during de-serialization of Waterloo generated XML files.

Displaying plots

Plots are displayed simply by adding them to Waterloo graphs using the GJGraph class add method.
As a convenience, plot instances provides a createFrame method. This creates a Swing JFrame together with a GJGraphContainer in its content pane and adds the plot to the view in that automatically.