[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

plot software


	Below are some notes concerning my plotting softare.

I will send a tape of the software to the SLUG 90 meeting.
In the meantime, I'll mail out a prelim version to all who want it
immediately.  It needs to mailed out in pieces in order not to 
break mailers.  Lockheed presently has no FTP support.  (I'd modem
it out to some univerity computer for FTP access, but I don't
access to such an account)

	I wrote the code during my object-oriented frenzy stage (so it's
as object oriented as it gets).  The philosophy of the substrate was to
have different flavors for the various "features" of a plot, those
features being:

1.  plot axes
2.  axes labels (exponential type or regular type)
                  1e9                   1.230
3.  plot-type (cartestian, polar, semi-log, log-log)
4.  Axes titles
5.  Page and plot titles.
6.  Data (to be plotted) flavor
7.  Curve type (dashed, solid, etc)
8.  Grid type (allowing for various ways to parametrize a grid)

In order to interface user data to the plotter substrate, a data
flavor needs to be defined, along with the 3 methods shown below:

1.  number-of-data-points (returns number of points to be plotted)
2.  get-data-point (returns next point to plot)
3.  reset-data-index (returns data pointer to start of data

Each flavor has many keyword options (added and built-upon ones from the
graphics substrate).  I haven't gotten around to trying all of the
keyword options (like the color related keywords provided by the
graphics substrate) 

Any output is funneled though a transform which allows the plot to be
rotated, sized, and placed anywhere on the page (page being a collection
of plots with an associated output screen (hardcopy or window)
This feature put the Symbolics graphics substrate to the test, and it
passed with flying colors (ie, I was unduely impressed with the graphics

		Misc plotter substrate features:

1.  Multiple plots on page
2.  Position (rotate, translate, scale) onto page as desired
3.  Multiple plots to one page
4.  Multiple curves on plot
5.  Preshape function can be supplied for each curve in order to
    apply a function to the data before being plotted.
6.  Plot every nth point of data set (useful for big-data problems)
7.  Autolabeling (for grid and associated labels).

		Plotter interface (some features)

1.  Zoom in and out and look at certain portions of data.  (This was
simply implemented as choosing a percentage of data to look at, as
opposed to the fancier way of using a mouse and presentation types)

2.  Find graph extremum 

	As I recall, the debug-cycle that I did for the substrate
was a fun experience.  Also, just got done testing some more features and
came away with a good feeling (picking and choosing various
plot-feature-flavors is a fun way to program).  I will continue testing
in my spare time in order to provide a minimal-bug program.  (There is
no such thing a large, bug-free code, not even TEX was bug free).
There are zillions of combinations of keyword-parameter settings, so
users should be able to customize their plots to their brain's content.

Hope this helps the potential user of this software.

Scott Fisher