A Plotter object is the lowest level in the PyGraph object-oriented graphics (OOG). Its routines interact with the C extension to Python which drives the particular graphics engine associated with that particular Plotter. Plotter objects are the only components of the OOG which ``know'' the details of the innards of a graphics engine. It is our intention that Graph objects and geometric objects should be independent of the graphics used, and Plotters should ignore (or second guess) requests that cannot be honored by their brand of graphics. The interface that a Plotter supplies to the outside world is intended to be essentially the same no matter what the underlying graphics is; unfortunately this is not completely true, because the ways that one connects to different graphics engines is generally incompatible. Thus the calling sequences for instantiations will differ somewhat; however, the internal functions of Plotters will have the same names and calling sequences.
Under most circumstances, a user will not need to instantiate or interact with Plotter objects. If you create some geometric objects, hand them to a Graph object, and ask the Graph to plot itself without having first created a Plotter object, then the Graph object will examine the environment variable PYGRAPH, and depending on whether it has been set to Gist or Nar, will instantiate a PyGist or PyNarcisse Plotter object and then use it to plot itself. If there is no PYGRAPH environment variable, then a default PyGist Plotter will be instantiated.
The following circumstances, however, mean that the user must have at least some basic knowledge about Plotter objects and their instantiation:
In the next two chapters we shall discuss how to instantiate PyGist and PyNarcisse Plotter objects. Once instantiated, these objects can be passed to Graph objects for them to use in their plotting. If a Graph object has been informed of more than one Plotter, then when it is asked to plot itself, it will cycle through the ones that it knows about and plot its geometric object(s) on each one.