.ig >>
<STYLE TYPE="text/css">
<!--
        A:link{text-decoration:none}
        A:visited{text-decoration:none}
        A:active{text-decoration:none}
-->
</STYLE>
<title>ploticus: frequently asked questions</title>
<body bgcolor=D0D0EE vlink=0000FF>
<br>
<br>
<center>
<table cellpadding=2 bgcolor=FFFFFF width=550 ><tr>
<td>
  <table cellpadding=2 width=550><tr>
  <td><br><h2>Frequently Asked Questions</h2></td>
  <td align=right>
  <small>
  <a href="../doc/Welcome.html"><img src="../doc/ploticus.gif" border=0></a><br>
  <a href="../doc/Welcome.html">Welcome</a> &nbsp; &nbsp;
  <a href="../gallery/index.html">Gallery</a> &nbsp; &nbsp;
  <a href="../doc/Contents.html">Handbook</a> 
  <td></tr></table>
</td></tr>
<td>
<br>
<br>
.>>

.TH Frequently_Asked_Questions PL "14-JUN-2002   PL ploticus.sourceforge.net"
 
.LP
.ig >>
<center><table bgcolor=FFFFEC border=1 cellpadding=4><tr><td>
<font size=+1>
<ul>
<li><a href="#gettingstarted">Getting started</a>
<li><a href="#input">Input</a>
<li><a href="#output">Output</a>
<li><a href="#scripts101">Scripts 101</a>
<li><a href="#intl">Character sets and international support</a>
<li><a href="#how">How do I ..</a>
<li><a href="#filter">Filter solutions</a>
</font>
</td></tr></table></center>
.>>


.ig >>
<br><br><br>
.>>
.LP
\fBWhere can I get \fBploticus\fR?
.IP
\fBploticus.sourceforge.net\fR or mirror sites.  It is free software.


.ig >>
<br><br><br>
.>>
.LP
\fBWhere can I report problems or get help?\fR
.IP
See the
.ig >>
<a href="../doc/Problems.html">
.>>
\0troubleshooting and bug reports page
.ig >>
</a>
.>>
and the
.ig >>
<a href="http://groups.yahoo.com/group/ploticus">
.>>
\0ploticus news group.
.ig >>
</a>
.>>
If you given the docs a fair go and still have a question,
feel free to ask by emailing 
.ig >>
<a href="mailto:scg@jax.org">
.>>
\0scg@jax.org
.ig >>
</a>
.>>
or posting to the
.ig >>
<a href="http://groups.yahoo.com/group/ploticus">
.>>
\0ploticus news group.
.ig >>
</a>
.>>


.ig >>
<br><br><br>
.>>
.LP
\fBWhat computing environments are supported?\fR
.IP
Most unix platforms and win32.


.ig >>
<br><br><br>
.>>
.LP
\fBHow many users are there?\fR
.IP
Some users who have written in are present on the
.ig >>
<a href="../doc/Feedback.html">
.>>
\0current
.ig >>
</a>
.>>
or
.ig >>
<a href="../doc/Feedback00.html">
.>>
\0earlier
.ig >>
</a>
.>>
user feedback pages.


.ig >>
<br><br><br>
.>>
.LP
\fBIs there an interactive mode?\fR
.IP
No, the main thrust has been to develop an engine
that can produce graphics non-interactively, so that
it can be run in an automated, unattended way.



.ig >>
<br><br><br>
.>>
.LP
\fBWhat is ploticus good for?\fR
.IP
Ploticus is good at making the types of graphs that you would see in
journals for medical and social sciences, 
newspapers and news magazines, business publications, and so on.
Ploticus is pretty good at handling date, time, and category data.
Ploticus has flexibility with regard to styles and colors.
Ploticus is well-suited for automated or repetitive tasks.


.ig >>
<br><br><br>
.>>
.LP
\fBWhat is ploticus not good for?\fR
.IP
Ploticus is not a function plotting package; it has little support for
mathematical formulas or scientific notations.
Ploticus is not a "marketing" graphics package; it has
little support for 3-D effects, clip-art, gradient backgrounds, and so on.  


.ig >>
<br><br><br>
.>>
.LP
\fBAre any statistical capabilities included?\fR
.IP
Some.  There are capabilities for curve fitting,
computing linear regression, and Pearson correlation coefficient \fIr\fR.
There is a built-in facility (proc tabulate) for computing frequency
distributions.  Means, medians, quartiles, standard deviations, etc. may
be computed using proc rangebar.  

.ig >>
<br><br><br>
.>>
.LP
\fBHow does ploticus compare with other freeware plotting/charting packages?\fR
.IP
Here is a list of some
.ig >>
<a href="../doc/Faq.other.html">
.>>
\0other plotting packages
.ig >>
</a>
.>>
(thanks to Arthur Ferruzzi).


.ig >>
<br><br><br>
.>>
.LP
\fBCan I use ploticus as part of a commercial package or service?\fR
.IP
This is possible.  
Please see the 
.ig >>
<a href="../doc/Copyright.html">
.>>
\0copyright page
.ig >>
</a>
.>>


.LP
.ig >>
<a name=gettingstarted></a>
<hr>
.>>
.ig >>
<br><br><br>
.>>
.SH GETTING STARTED
.LP
\fBWhat is the easiest way to get started?\fR
.IP
.ig >>
<a href="../doc/Download.html">
.>>
\0Download
.ig >>
</a>
.>>
the software.  Then,
see of one of the available
.ig >>
<a href="prefabs.html">
.>>
\0prefabs
.ig >>
</a>
.>>
is close to what you want.  When a prefab is used, all that needs to be specified
by the user are several key parameters.  
.IP
For more flexibility and power, you can develop your own
.ig >>
<a href="scripts.html">
.>>
\0ploticus scripts
.ig >>
</a>
.>>


.ig >>
<br><br><br>
.>>
.LP
\fBHow do I invoke ploticus?\fR
.IP
The
.ig >>
<a href="pl.1.html">
.>>
\0pl
.ig >>
</a>
.>>
command.

.ig >>
<br><br><br>
.>>
.LP
\fBHow do we invoke ploticus automatically?  How can we generate on-the-fly graphs for our web site?\fR
.IP
You can invoke pl 
.ig >>
<a href="cgi.html">
.>>
\0directly as a CGI
.ig >>
</a>
.>>
, and there are 
.ig >>
<a href="dynamic.html">
.>>
\0other approaches
.ig >>
</a>
.>>
as well.


.ig >>
<br><br><br>
.>>
.LP
\fBThe chron prefab is close to what I want, except.. \fR
.IP
Prefabs are intended to cover basic needs, but due to their very nature as
a simple interface they aren't nearly as flexible as developing ploticus scripts.
If you are running into limitations, consider making the jump to 
.ig >>
<a href="scripts.html">
.>>
\0scripts
.ig >>
</a>
.>>



.LP
.ig >>
<a name=input></a>
<hr>
.>>
.ig >>
<br><br><br>
.>>
.SH INPUT
.LP
\fBWhat data formats are accepted?\fR
.IP
See the
.ig >>
<a href="dataformat.html">
.>>
\0data formats documentation
.ig >>
</a>
.>>

.ig >>
<br><br><br>
.>>
.LP
\fBWhat data types and scaling types are handled?\fR
.IP
See the
.ig >>
<a href="scaleunits.html">
.>>
\0scale units documentation
.ig >>
</a>
.>>

.ig >>
<br><br><br>
.>>
.LP
\fBHow does my data need to be organized in order to plot from it?\fR
.IP
See the
.ig >>
<a href="dataformat.html">
.>>
\0data formats documentation
.ig >>
</a>
.>>


.ig >>
<br><br><br>
.>>
.LP
\fBCan I assign names to data fields?\fR
.IP
See the
.ig >>
<a href="dataformat.html">
.>>
\0data formats documentation
.ig >>
</a>
.>>


.ig >>
<br><br><br>
.>>
.LP
\fBCan ploticus get data directly from MySQL, Oracle, Excel, Access, etc.?\fR
.IP
Ploticus is not tightly integrated with these other environments.
You would need to dump data out into an ascii file first.
You can also have ploticus invoke a shell command which generates data, such as this:
.nf
	#proc getdata
	  delim: tab
	  command: mysql ...
.fi

.LP
\fBCan ploticus automatically determine the axis based on the range of the data?\fR
.IP
Yes.  Prefabs will do this automatically.  If writing a script use proc areadef
.ig >>
<a href="autorange.html">
.>>
\0autorange.
.ig >>
</a>
.>>
A script example that does this in both X and Y is
.ig >>
<a href="../gallery/scatterplot10.htm">
.>>
\0scatterplot10.
.ig >>
</a>
.>>


.ig >>
<br><br><br>
.>>
.LP
\fBWhat about large data sets?\fR
.IP
The 
.ig >>
<a href="limits.html">
.>>
\0capacities
.ig >>
</a>
.>>
are fairly large.  If your data set is too large, and you're writing a script, you may be able to use
.ig >>
<a href="getdata.html">
.>>
\0proc getdata
.ig >>
</a>
.>>
\fCselect\fR or \fCfilter\fR to pare down the size.





.LP
.ig >>
<a name=output></a>
<hr>
.>>
.ig >>
<br><br><br>
.>>
.SH OUTPUT
.LP
\fBWhat graphics file formats can be created?\fR
.IP
.ig >>
<a href="svg.html">
.>>
\0SVG
.ig >>
</a>
.>>
, PostScript, and EPS are generally supported in all builds.
Unix builds support interactive X11 display.
GIF, PNG, JPEG, and WBMP are available depending on 
configuration (see the download page and/or the Makefile).
.ig >>
<a href="clickmap.html">
.>>
\0Clickmap support
.ig >>
</a>
.>>
is available for images and SVG.



.ig >>
<br><br><br>
.>>
.LP
\fBCan I import ploticus graphs into PowerPoint, Word, etc.?\fR
.IP
Yes.  
PNG and GIF files may be inserted as pictures.
SVG has a bright future as a portable and scalable graphic format.
EPS files may be used with PowerPoint if the result will be
rendered on a PostScript film imager.



.ig >>
<br><br><br>
.>>
.LP
\fBHow can we process and perhaps annotate ploticus graphs for submission to a journal, etc.?\fR
.IP
See
.ig >>
<a href="prepress.html">
.>>
\0pre-press work and publication-quality graphs
.ig >>
</a>
.>>



.ig >>
<br><br><br>
.>>
.LP
\fBHow can I enlarge or reduce my results?\fR
.IP
Use the \fB-scale\fR command line option.


.LP
\fBHow can I make thumbnails?\fR
.IP
Just use a small scale factor, such as \fB-scale 0.3\fR.
Very small text is rendered as lines automatically.

.LP
\fBHow can I crop my results?\fR
.IP
Use one of the \fB-crop\fR, \fB-croprel\fR or \fB-tightcrop\fR command line options.

.LP
\fB-tightcrop is close to what I want but it is cropping too closely on one side.\fR
.IP
Try \fB-croprel\fR.





.LP
.ig >>
<a name=scripts101></a>
<hr>
.>>
.ig >>
<br><br><br>
.>>
.SH SCRIPTS 101
.LP
\fBI need a customized plot.   If I am coding a script from scratch, what is the 
bare minimum of code I need?\fR
.IP
See the
.ig >>
<a href="scripts.html">
.>>
\0introduction to scripts.
.ig >>
</a>
.>>



.ig >>
<br><br><br>
.>>
.LP
\fBHow should ploticus script files be named?\fR
.IP
See the
.ig >>
<a href="scripts.html">
.>>
\0introduction to scripts.
.ig >>
</a>
.>>



.ig >>
<br><br><br>
.>>
.LP
\fBDo I have to learn the script language?\fR
.IP
You do not, if you can get by with just the
.ig >>
<a href="prefabs.html">
.>>
\0prefabs.
.ig >>
</a>
.>>
Otherwise, you do.  
The
.ig >>
<a href="scripts.html">
.>>
\0introduction to scripts
.ig >>
</a>
.>>
provides a place to start.
For serious script development, I recommend downloading the entire doc node 
including gallery examples and handbook.  Then you can search and peruse all of the 
material locally using "grep" or whatever.


.ig >>
<br><br><br>
.>>
.LP
\fBHow do I perform arithmetic?\fR
.br
\fBHow do I take a substring?\fR
.br
\fBHow do I format a floating point number?\fR
.br
\fBHow do I access a particular cell in the data?\fR
.IP
These tasks are all accomplished using functions.
Specifically, $arith(), $substring(), $formatfloat(), and $dataitem().
See the
.ig >>
<a href="functions.html">
.>>
\0functions documentation
.ig >>
</a>
.>>
for the wide range of available functions.
Becoming familiar with the range of functions available is a big step
towards making the most of this tool.



.ig >>
<br><br><br>
.>>
.LP
\fBHow do I capture the results of a system command?\fR
.IP
The following would execute the 'date' command and the results would be available
in ploticus variable @todaysdate:
.nf
  \0#shell #processrows date
  \0#call $shellrow( todaysdate )
.fi



.LP
\fBHow do I set up a loop?\fR
.IP
Loops may be made to iterate over members of a
.ig >>
<a href="commalist.html">
.>>
\0commalist.
.ig >>
</a>
.>>
See gallery examples
.ig >>
<a href="../gallery/colorgrid.htm">
.>>
\0colorgrid
.ig >>
</a>
.>>
and
.ig >>
<a href="../gallery/lineplot20.htm">
.>>
\0lineplot20
.ig >>
</a>
.>>


.ig >>
<br><br><br>
.>>
.LP
\fBWhy does a double at-sign (@@) need to be used in "select"
attributes and in getdata filters?\fR
.IP
The first at-sign is stripped off by the script evaluator.
These attributes require one at-sign to survive that step, hence
two must be supplied.



.ig >>
<br><br><br>
.>>
.LP
\fBWhat are #clone and #saveas and how do they work?\fR
.IP
\fB#clone\fR and \fB#saveas\fR are used
when doing several similar plots, such as a set of four
bar graphs that have the same style.  \fB#saveas\fR saves
the attribute settings for one proc invocation.  \fB#clone\fR
uses a set of attribute settings that was saved earlier.
An example is
.ig >>
<a href="../gallery/volunteers.htm">
.>>
\0volunteers.
.ig >>
</a>
.>>
See also the
.ig >>
<a href="../doc/scripts.html">
.>>
\0introduction to scripts
.ig >>
</a>
.>>


.ig >>
<br><br><br>
.>>
.LP
\fBMy page title has garbage at the end.\fR
.IP
Attributes that are multi-line need to be terminated with a blank
line.  Perhaps the blank line was left out.



.ig >>
<br><br><br>
.>>
.LP
\fBPloticus seems to be ignoring an attribute I have set.\fR
.IP
If the attribute in question follows a multi-line attribute,
you may have forgotten to terminate the multi-line attribute
with a blank line.


.ig >>
<br><br><br>
.>>
.LP
\fBAccording to the documentation, proc getdata sets a ploticus variable called NRECORDS to the number of
records read.  However I am having trouble accessing NRECORDS immediately after proc getdata.\fR
.IP
Use \fB#endproc\fR to terminate your proc getdata block.
This is a side-effect of the way that ploticus parses scripts. 
\fB#endproc\fR is described in the
.ig >>
<a href="scripts.html">
.>>
\0introduction to scripts.
.ig >>
</a>
.>>



.LP
.ig >>
<a name=intl></a>
<hr>
.>>
.ig >>
<br><br><br>
.>>
.SH CHARACTER SETS AND INTERNATIONAL SUPPORT
.LP
\fBHow can I render a proper less-than-or-equal-to symbol, Portugese
characters, or other special symbols?\fR
.IP
This is now described
.ig >>
<a href="fonts.html">
.>>
\0here
.ig >>
</a>
.>>



.ig >>
<br><br><br>
.>>
.LP
\fBWhat about support for UNICODE, BIG-5, etc.\fR
.IP
Sorry, ploticus was designed only to accomodate 8 bit wide characters.



.ig >>
<br><br><br>
.>>
.LP
\fBI would like dates to use the German month abbreviations rather
than the English.\fR
.IP
This is possible.  See
.ig >>
<a href="settings.html">
.>>
\0proc settings
.ig >>
</a>
.>>
or
.ig >>
<a href="config.html">
.>>
\0config files.
.ig >>
</a>
.>>



.ig >>
<br><br><br>
.>>
.LP
\fBIs there any way to get thousands separators so that large numbers are 
more readable e.g. 3,024,582? \fR
.IP
Yes, see
.ig >>
<a href="settings.html">
.>>
\0proc settings
.ig >>
</a>
.>>
or
.ig >>
<a href="config.html">
.>>
\0config files.
.ig >>
</a>
.>>


.ig >>
<br><br><br>
.>>
.LP
\fBIs there a way to get European-style display of numbers, eg. comma used as
the decimal point, and period (.) used as the thousands separator?\fR
.IP
Yes, see
.ig >>
<a href="settings.html">
.>>
\0proc settings
.ig >>
</a>
.>>
or
.ig >>
<a href="config.html">
.>>
\0config files.
.ig >>
</a>
.>>


.ig >>
<br><br><br>
.>>
.LP
\fBWhy isn't vertical text displayed properly on X11?\fR
.IP
Ploticus doesn't store its own fonts or have its own 
font system; rather it uses fonts that are native to the various graphics platforms
or drivers.  X11 does not support vertical fonts (at least it didn't seem to
when I wrote the X11 code several years ago).  PostScript and PNG/GIF do support 
vertical fonts.


.ig >>
<br><br><br>
.>>
.LP
\fBIf I had one feature request for ploticus it would be
support for setting text at angles other than 0 and 90.\fR
.IP 
This could be done for postscript rendering easily enough
but would be difficult in X11 and PNG/GIF, since the underlying
libraries do not support angled fonts.





.LP
.ig >>
<a name=how></a>
<hr>
.>>
.ig >>
<br><br><br>
.>>
.SH HOW DO I ...
.LP
\fBI have a program that generates a stream of
X Y coordinates to create a special display.  How can I
display my results via Ploticus?\fR
.IP
If you can process your stream so that it becomes a stream of ploticus draw commands, you can use the
.ig >>
<a href="prefab_draw.html">
.>>
\0draw prefab
.ig >>
</a>
.>>
to render on any device ploticus supports.

.ig >>
<br><br><br>
.>>
.LP
\fBHow can I do cross-hatch fill for my bar graph?\fR
.IP
Hatch patterns are also available as a 
.ig >>
<a href="color.html">
.>>
\0color option
.ig >>
</a>
.>>
which may be useful in getting more distinguishable bar shades.
Hatch patterns may only be used to fill rectangular areas such as bars.
They can't be used for pie graphs.


.ig >>
<br><br><br>
.>>
.LP
\fBI have a graph where I set up a plotting area using proc areadef,
proc yaxis, and two separate invocations of proc xaxis.  How do I
clone this entire plotting area several times?
.IP
You need to use #saveas within every proc that is involved (with
different instance names), and then use #clone all of the procs.
There is no way to clone a set of procs together in one operation.


.ig >>
<br><br><br>
.>>
.LP
\fBHow do I render two separate scatter plots on the same plot area?  \fR
.IP
1) Set up your plotting area; 2) read in your first data set; 3) do your first 
scatterplot; 4) read in your second data set; 5) do your second scatterplot.
The first areadef stays in effect until a new areadef is specified,
thus any number of plots may be rendered in the area.


.ig >>
<br><br><br>
.>>
.LP
\fBCan I make a Y axis on the right edge of the plot rather than the left?\fR
.IP
Yes, see gallery example 
.ig >>
<a href="../gallery/sa12.htm">
.>>
\0sa12
.ig >>
</a>
.>>


.ig >>
<br><br><br>
.>>
.LP
\fBIs it possible to overlay two coordinate systems on one plot?\fR
.IP
Yes, see gallery example 
.ig >>
<a href="../gallery/sa13.htm">
.>>
\0sa13
.ig >>
</a>
.>>
which overlays Celsius and Fahrenheit.


.ig >>
<br><br><br>
.>>
.LP
\fBHow can I have grid lines in orange every 0.1 unit, and then grid lines
in black every 1.0 unit?\fR
.IP
Invoke #proc axis twice and overlay the two, to get more complex 
systems of grids, tics, and stubs.  See example
.ig >>
<a href="../gallery/sa14.htm">
.>>
\0sa14
.ig >>
</a>
.>>
which does this.


.ig >>
<br><br><br>
.>>
.LP
\fBHow can I make \fCautorange\fB work for stacked bars, clustered bars, or error bars?
.IP
Use the
.ig >>
<a href="autorange.html">
.>>
\0autorange
.ig >>
</a>
.>>
\fCdatafields\fR attribute to specify the data fields, and set the \fCcombomode\fR attribute.
Combomode tells it whether to sum the fields or take an overall max.  
The prefab scripts stack.pl, lines.pl, and vbars.pl are examples.


.ig >>
<br><br><br>
.>>
.LP
\fBAn axis labelling question: my xrange goes from 0.5 to 12.  When I 
do stubs of "increment 1" they are drawn at 0.5, 1.5, 2.5, etc..  I want them to be
at 1.0, 2.0, etc.\fR
.IP
Stub placement begins by default at the minima.  To override this, the stubrange
attribute can be used.  For your case, it would be: \fCstubrange: 1.0\fR


.ig >>
<br><br><br>
.>>
.LP
\fBIs there a way to do a broken Y axis?\fR
.IP
Yes, although broken axes cannot be done in an automated way.
See gallery example
.ig >>
<a href="../gallery/brokenaxis.htm">
.>>
\0brokenaxis
.ig >>
</a>
.>>
and the man page for
.ig >>
<a href="../doc/breakaxis.html">
.>>
\0proc breakaxis
.ig >>
</a>
.>>


.ig >>
<br><br><br>
.>>
.LP
\fBI am trying to do a plot where the X axis is dates expressed in quarter years
(quarters), to show quarterly results.  It is not coming out right.\fR
.IP
It is a little bit tricky because data in quarter notation is converted
to a full date midpoint, so the X range needs to be expressed in a full date notation,
then you change units to quarter notation.  See the example
.ig >>
<a href="../gallery/quarters.htm">
.>>
\0quarters
.ig >>
</a>
.>>
which illustrates.



.ig >>
<br><br><br>
.>>
.LP
\fBIs there any way to make an axis progress from a large value to a small value?\fR
.IP
Yes, although it is not entirely straighforward.
See gallery example
.ig >>
<a href="../gallery/hbars4.htm">
.>>
\0hbars4
.ig >>
</a>
.>>



.ig >>
<br><br><br>
.>>
.LP
\fBI have large web log files.
I would like to plot a frequency distribution of number of hits per date and time,
What's the best way to do this?\fR
.IP
Use \fBproc processdata\fR with the \fBcount\fR action.
Your data will have to be sorted (or at least grouped) so that
all like datetimes are together.  A gallery example where this 
is done is
.ig >>
<a href="../gallery/hitcount.htm">
.>>
\0hitcount
.ig >>
</a>
.>>
Proc tabulate can also be used to do frequency distributions, but it has an upper
limit of 200 bins.


.ig >>
<br><br><br>
.>>
.LP
\fB I have one data set with about 80 different cases represented in it.  Each case has
several dozen rows of data.  I want to produce a separate plot for each case.
What's the best way to do this?\fR
.IP
Use the
.ig >>
<a href="processdata.html">
.>>
\0proc processdata
.ig >>
</a>
.>>
\fBbreaks\fR attribute.
It works within a loop, and causes the data set to be scanned only once.
It requires that the data be sorted by case.


.LP
.ig >>
<hr>
<a name=filter></a>
.>>

.ig >>
<br><br><br>
.>>
.SH FILTER SOLUTIONS
When working with 
.ig >>
<a href="getdata.html">
.>>
\0proc getdata filters
.ig >>
</a>
.>>
it is good practice to set \fCshowresults: yes\fR so that you can see what you're doing during debugging.
.ig >>
<br><br><br>
.>>
.LP
\fBI have a data set with dates in field 2 and times in field 3.  
How can I plot these using the datetime scaling type?\fR
.IP
Ploticus datetime values have the form \fIdate\fB.\fItime\fR.
The date and the time may in any of the supported notations.
The dot (.) separator is required.
You can use proc getdata's \fCfilter\fR attribute to concatentate fields
2 and 3 like this:
.nf
\0	#proc getdata
\0	file: mydata
\0	filter: @@1 @@2.@@3 @@4 @@5
.fi


.LP 
\fBIn the results from sar -u, I can get "idle" time in %. Subtracting that
from 100 would give me the total CPU load data.  Is there an easy way to 
accomplish that within the ploticus script?\fR
.IP 
Yes, similarly to the above example, you can use proc getdata's filter attribute.
Suppose your idle time is in field #4:
.nf 
\0	#proc getdata
\0	file: myfile
\0	filter: ##set CPUTOT = $arith(100-@@4)
\0        	@@1 @@2 @@3 @@CPUTOT @@5 @@6
.fi



.ig >>
<br>
<br>
</td></tr>
<td align=right>
<a href="../doc/Welcome.html">
<img src="../doc/ploticus.gif" border=0></a><br><small>data display engine &nbsp; <br>
<a href="../doc/Copyright.html">Copyright Steve Grubb</a>
<br>
<br>
<center>
<img src="../gallery/all.gif">
</center>
</td></tr>
</table>
.>>
