amiga-request@abcfd20.larc.nasa.gov (Amiga Sources/Binaries Moderator) (08/23/90)
Submitted-by: Anthony M. Richardson <amr@dukee.egr.duke.edu> Posting-number: Volume 90, Issue 242 Archive-name: applications/listplot/part01 [ the manual page was uuencoded for posting ...tad ] ListPlot is a 2D plotting program built around the PLPLOT plotting library. Although working directly with the PLPLOT library routines is more flexible, ListPlot is quite powerful. #!/bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 1 (of 3)." # Contents: Csrc Csrc/datatypes.h Csrc/input.c Make Makefile README # docs docs/ListPlot.1 examples examples/README examples/lineinput # examples/lineplot examples/loginput examples/logplot # examples/polarinput examples/polarplot plstnd.fnt.uu # Wrapped by tadguy@abcfd20 on Wed Aug 22 21:03:20 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test ! -d 'Csrc' ; then echo shar: Creating directory \"'Csrc'\" mkdir 'Csrc' fi if test -f 'Csrc/datatypes.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Csrc/datatypes.h'\" else echo shar: Extracting \"'Csrc/datatypes.h'\" \(3681 characters\) sed "s/^X//" >'Csrc/datatypes.h' <<'END_OF_FILE' X/* X * datatypes.h X */ X Xtypedef char generic; Xtypedef int bool; X#define FALSE (bool)0 X#define TRUE (!FALSE) Xtypedef float FLOAT; X X#if defined(ibmRT) X# define MAX_FLOAT 1.701e38 X#endif X#if defined(vax) || defined(vax3200) || defined(dgmv) X# define MAX_FLOAT 1.701e38 X#endif X Xstruct list_atom { X generic *la_p; X struct list_atom *la_next; X}; Xtypedef struct list_atom LATOM; Xtypedef struct list { X int list_n; X LATOM *list_head; X LATOM *list_tail; X } LIST; X Xtypedef enum data_type { X integer, X dbl, X flt, X byte, X string, X interval, X boolean, X set, X rect X } DATATYPE; X#define isInteger(V) (V.val_type == integer? TRUE : FALSE) X#define isDbl(V) (V.val_type == dbl? TRUE : FALSE) X#define isFlt(V) (V.val_type == flt? TRUE : FALSE) X#define isByte(V) (V.val_type == byte? TRUE : FALSE) X#define isString(V) (V.val_type == string? TRUE : FALSE) X#define isInterval(V) (V.val_type == interval? TRUE : FALSE) X#define isBoolean(V) (V.val_type == boolean? TRUE : FALSE) X#define isSet(V) (V.val_type == set? TRUE : FALSE) X#define isRect(V) (V.val_type == rect? TRUE : FALSE) X X#define VtoInteger(V) (V).val_u.udt_int X#define VtoDbl(V) (V).val_u.udt_dbl X#define VtoFlt(V) (V).val_u.udt_flt X#define VtoByte(V) (V).val_u.udt_byte X#define VtoString(V) (V).val_u.udt_string X#define VtoInterval(V) (V).val_u.udt_interval X#define VtoBoolean(V) (V).val_u.udt_bool X#define VtoSet(V) (V).val_u.udt_set X#define VtoRect(V) (V).val_u.udt_rect X X X Xtypedef struct interval { X double int_lo, int_hi; X } INTERVAL; X Xtypedef LIST SET; X Xtypedef struct rect { X FLOAT r_diag[4]; /* xmin,ymin, xmax,ymax */ X } RECT; X#define XMin r_diag[0] X#define YMin r_diag[1] X#define XMax r_diag[2] X#define YMax r_diag[3] X Xtypedef union data_types { X char udt_byte; X int udt_int; X bool udt_bool; X double udt_dbl; X float udt_flt; X char *udt_string; X INTERVAL udt_interval; X SET udt_set; /* {a,b,c,...} */ X RECT udt_rect; X } UTYPE; X Xtypedef struct value { X DATATYPE val_type; X UTYPE val_u; X } VALUE; X X#define Vstrcmp(V, S) (V.val_type==string? strcmp(V.val_u.udt_string,S)==0? TRUE : FALSE : FALSE) X#define Vstrchr(V, C) (V.val_type==string? strchr(V.val_u.udt_string,C)==(char *)NULL? FALSE : TRUE : FALSE) X Xtypedef struct arg_def { X VALUE *ad_value; X char *ad_id; X char *ad_options; X char *ad_opttype; X char *ad_default; X char *ad_defaultType; X char **ad_helptext; X} ARGDEF; X X X#ifdef ANSI_C Xvoid ErrorExit(); Xbool Append(LIST *L, generic *Ptr); Xchar *malloc(unsigned int); Xchar *calloc(unsigned int, unsigned int); Xchar *StrDup(char *Str); Xvoid get_args( X int argc, X char **argv, X ARGDEF *Symbols[], X char *Usage[], X char *Function[] X ); Xvoid PrintArgDef(FILE *Fp, ARGDEF *D); Xvoid PrintArg(FILE *Fp, ARGDEF *D); Xbool ParseArg(ARGDEF *Symbols[], char *arg); Xbool ParseEntry(ARGDEF *Entry, char *arg); Xbool ParseString(ARGDEF *Entry, char *Option, int n, char *arg); Xbool ParseDbl(ARGDEF *Entry, char *arg); Xbool ParseFloat(ARGDEF *Entry, char *arg); Xbool ParseInt(ARGDEF *Entry, char *arg); Xbool ParseBool(ARGDEF *Entry, char *arg); Xbool ParseByte(ARGDEF *Entry, char *arg); Xbool ParseInterval(ARGDEF *Entry, char *arg); Xbool ParseSet(ARGDEF *Entry, char *arg, char *Type, int TypeWidth); Xbool ParseRect(ARGDEF *Entry, char *arg); X Xvoid PrintUsage( X FILE *Fp, X char *Usage[], X char *Function[], X ARGDEF *Symbols[] X ); Xvoid SetDefaults(ARGDEF *Symbols[]); Xbool SetValue(VALUE *, char *Value, char *Type); Xbool SetString(VALUE *, char *); Xbool SetDbl(VALUE *, char *); Xbool SetFloat(VALUE *, char *); Xbool SetInt(VALUE *, char *); Xbool SetBool(VALUE *, char *); Xbool SetByte(VALUE *, char *); Xbool SetInterval(VALUE *, char *); Xbool SetSet(VALUE *, char *, char *, int); Xbool SetRect(VALUE *, char *); X X#else X#endif END_OF_FILE if test 3681 -ne `wc -c <'Csrc/datatypes.h'`; then echo shar: \"'Csrc/datatypes.h'\" unpacked with wrong size! fi chmod +x 'Csrc/datatypes.h' # end of 'Csrc/datatypes.h' fi if test -f 'Csrc/input.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Csrc/input.c'\" else echo shar: Extracting \"'Csrc/input.c'\" \(4974 characters\) sed "s/^X//" >'Csrc/input.c' <<'END_OF_FILE' X/* X * input.c X * X * Gets data to be plotted X */ X#include <stdio.h> X#include <errno.h> Xextern int errno; X#include <assert.h> X#include <ctype.h> X#include "datatypes.h" X X XFLOAT ** XGetData(Fp, m, n) XFILE *Fp; Xint *m, *n; X{ X#ifdef ANSI_C X FLOAT **GetDataMem(FILE *fp, int *M, int *N); X#else X FLOAT **GetDataMem(); X#endif X X return(GetDataMem(Fp, m, n)); X} X X Xbool XAppend(L, Ptr) Xregister LIST *L; Xgeneric *Ptr; X{ X register LATOM *A; X X assert(L != (LIST *)NULL); X assert(L->list_n >= 0); X X if ((A = (LATOM *)calloc(1, sizeof(LATOM))) == (LATOM *)NULL) { X perror("(AppendDbl) "); X ErrorExit(); X } X A->la_p = Ptr; X A->la_next = (LATOM *)NULL; X X if (L->list_n == 0) { X /* empty list */ X assert(L->list_head == (LATOM *)NULL); X assert(L->list_tail == (LATOM *)NULL); X L->list_head = A; X L->list_tail = A; X L->list_n = 1; X } else { X assert(L->list_head != (LATOM *)NULL); X assert(L->list_tail != (LATOM *)NULL); X L->list_tail->la_next = A; X L->list_tail = A; X L->list_n++; X } X return(TRUE); X} X X XFLOAT ** XGetDataMem(Fp, m, n) XFILE *Fp; Xint *m, *n; X{ X int i; X int C; X int NTuples, TupleSize; X double D; X FLOAT *F; X FLOAT *Tuple; X FLOAT **Data; X LIST TupleL1; X LIST TupleList; X LATOM *A; X#ifdef ANSI_C X bool GetNextDbl(FILE *, double *, int *); X#else X bool GetNextDbl(); X#endif X X TupleL1.list_n = 0; X TupleL1.list_head = (LATOM *)NULL; X TupleL1.list_tail = (LATOM *)NULL; X X /* read first line to determine tuple size */ X NTuples = 0; X i = 0; X do { X if (GetNextDbl(Fp, &D, &C) == TRUE) { X if ((F = (FLOAT *)calloc(1, sizeof(FLOAT))) == (FLOAT *)NULL) { X perror("(GetDataMem) "); X ErrorExit(); X } X *F = D; X Append(&TupleL1, (generic *)F); X ++i; X } else { X break; X } X } while(C != '\n' && C != EOF); X X TupleSize = i; X if ((Tuple=(FLOAT *)calloc(TupleSize, sizeof(FLOAT))) == (FLOAT *)NULL) { X perror("(GetDataMem) "); X ErrorExit(); X } X for (A=TupleL1.list_head,i=0; i<TupleSize; i++,A=A->la_next) { X Tuple[i] = *((FLOAT *)(A->la_p)); X } X X /* initialize list of tuples */ X TupleList.list_n = 0; X TupleList.list_head = (LATOM *)NULL; X TupleList.list_tail = (LATOM *)NULL; X Append(&TupleList, (generic *)Tuple); X X /* get remaining tuples */ X i = 1; X do { X if ((Tuple=(FLOAT *)calloc(TupleSize, sizeof(FLOAT))) == (FLOAT *)NULL) { X perror("(GetDataMem) "); X ErrorExit(); X } X if (GetNextTuple(Fp, Tuple, TupleSize, &C) == TRUE) { X Append(&TupleList, (generic *)Tuple); X ++i; X } X } while(!feof(Fp)); X X if ( C != EOF ) { X fprintf(stderr,"Error encountered while trying to read data stream...\n"); X ErrorExit(); X } else { X NTuples = i; X } X X X /* convert to list of tuples to vectorized array */ X if ((Data = (FLOAT **)calloc(NTuples, sizeof(FLOAT *))) == (FLOAT **)NULL) { X perror("(GetDataMem) "); X ErrorExit(); X } X X for (A=TupleList.list_head,i=0; i<NTuples; i++,A=A->la_next) { X Data[i] = (FLOAT *)A->la_p; X } X X *m = NTuples; X *n = TupleSize; X return(Data); X} X X Xbool XGetNextTuple(Fp, Tuple, n, C) XFILE *Fp; XFLOAT *Tuple; Xint n; Xregister int *C; X{ X register int j; X double D; X#ifdef ANSI_C X bool GetNextDbl(FILE *, double *, int *); X#else X bool GetNextDbl(); X#endif X X for (*C=' ',j=0; j<n && isspace((char)(*C)) && *C != EOF && *C != '\n'; ) { X if (GetNextDbl(Fp, &D, C) == TRUE) { X Tuple[j++] = D; X } X } X /* strip trailing any trailing characters */ X for (; *C != '\n' && *C != EOF; ) X *C = fgetc(Fp); X X if ( j>0 && j<(n-1) ) { X /* error */ X if (*C == EOF) { X fprintf(stderr,"Unexpected EOF while reading data!\n"); X } else if (*C == '\n') { X fprintf(stderr, "Unexpected EOL while reading tuple...\n"); X } else { X fprintf(stderr, "Unable to interpret data stream...\n"); X } X ErrorExit(); X } X return(j==n? TRUE : FALSE); X} X Xbool XGetNextDbl(Fp, D, C) XFILE *Fp; Xdouble *D; Xregister int *C; X/* returns next uninterpreted character in C and X * TRUE if found double else FALSE. X */ X{ X register int i; X register char *cp; X char s[64]; X int flag; X X for (flag=0,i=0,cp=s; i<sizeof(s)-1; ) { X if ((*C = fgetc(Fp)) == EOF) { X if (flag) { X *cp = (char)NULL; X if (sscanf(s, "%lf", D) == 1) { X return(TRUE); X } else { X /* error */ X fprintf(stderr,"Encountered nonnumeric item in data stream...\n"); X ErrorExit(); X } X } else { X return(FALSE); X } X } else if (*C == '\n') { X if (flag) { X *cp = (char)NULL; X if (sscanf(s, "%lf", D) == 1) { X return(TRUE); X } else { X /* error */ X fprintf(stderr,"Encountered nonnumeric item in data stream...\n"); X ErrorExit(); X } X } else { X return(FALSE); X } X } else if (isspace(*C)) { X if (flag) { X *cp = (char)NULL; X if (sscanf(s, "%lf", D) == 1) { X return(TRUE); X } else { X /* error */ X fprintf(stderr,"Encountered nonnumeric item in data stream...\n"); X ErrorExit(); X } X } else { X continue; X } X } else { X flag = 1; X *cp++ = (char)(*C); X ++i; X } X } X fprintf(stderr,"Possible internal error...\nEncountered data item greater than %d characters!\n", sizeof(s)-1); X X ErrorExit(); X} END_OF_FILE if test 4974 -ne `wc -c <'Csrc/input.c'`; then echo shar: \"'Csrc/input.c'\" unpacked with wrong size! fi # end of 'Csrc/input.c' fi if test -f 'Make' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Make'\" else echo shar: Extracting \"'Make'\" \(45 characters\) sed "s/^X//" >'Make' <<'END_OF_FILE' Xlmk -f Makefile CC=lc OTHERDEFS=-DANSI_C all END_OF_FILE if test 45 -ne `wc -c <'Make'`; then echo shar: \"'Make'\" unpacked with wrong size! fi chmod +x 'Make' # end of 'Make' fi if test -f 'Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Makefile'\" else echo shar: Extracting \"'Makefile'\" \(744 characters\) sed "s/^X//" >'Makefile' <<'END_OF_FILE' X XH=/Csrc XCFLAGS=-ff -i$(H) $(OTHERDEFS) XCSRC=Csrc XPLPLOT=lib:plpffp.lib X XTARGET= ListPlot X XOBJECTS= \ X $(CSRC)/get_args.o\ X $(CSRC)/input.o\ X $(CSRC)/plotting.o X X Xall: $(OBJECTS) $(TARGET) X Xclean: X delete #?.o X X$(CSRC)/get_args.o: $(CSRC)/get_args.c $(CSRC)/datatypes.h X $(CC) $(CFLAGS) $(CSRC)/get_args.c X X$(CSRC)/input.o: $(CSRC)/input.c $(CSRC)/datatypes.h X $(CC) $(CFLAGS) $(CSRC)/input.c X X$(CSRC)/ListPlot.o: $(CSRC)/ListPlot.c $(CSRC)/datatypes.h X $(CC) $(CFLAGS) $(CSRC)/ListPlot.c X X$(CSRC)/plotting.o: $(CSRC)/plotting.c $(CSRC)/datatypes.h X $(CC) $(CFLAGS) -dMAX_FLOAT=9.e18 $(CSRC)/plotting.c X XListPlot: $(CSRC)/ListPlot.o $(OBJECTS) X blink lib:c.o $(CSRC)/ListPlot.o $(OBJECTS) to ListPlot lib lib:lcmffp.lib lib:lc.lib $(PLPLOT) END_OF_FILE if test 744 -ne `wc -c <'Makefile'`; then echo shar: \"'Makefile'\" unpacked with wrong size! fi chmod +x 'Makefile' # end of 'Makefile' fi if test -f 'README' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'README'\" else echo shar: Extracting \"'README'\" \(7752 characters\) sed "s/^X//" >'README' <<'END_OF_FILE' XABOUT LISTPLOT X XListPlot is a 2D plotting program built around the PLPLOT plotting library. XAlthough working directly with the PLPLOT library routines is more Xflexible, ListPlot is quite powerful. X XListPlot was ported from a UNIX program written by myself and (mainly) XRick Bartram. It reads from stdin and writes to stdout unless input Xand/or output files are specified on the command line. (Reading from Xstdin is of dubious value on the Amiga, since the standard shell does Xnot support pipes.) The program accepts a file of n-tuples. Each tuple Xconsists of space-separated numbers terminated with a newline. The Xfirst element of each tuple is the independent variable. Each remaining Xvariable is plotted against the first to produce n-1 curves. X XLinear-linear, linear-log, log-linear, log-log, and polar graphs are Xsupported. X XListPlot supports several output devices. By default the graph is drawn Xin a window on the Amiga's screen. With command line options the graph Xcan be X 1) sent to any preferences printer with graphics capability X 2) stored as an IFF file X 3) stored in HPGL format X 4) stored in Aegis Draw format X 5) stored as an Encapsulated Postscript File. X XA variety of line styles and colors are available. X XOverlining, underlining, subscripting, superscripting, and greek Xcharacters can be used within labels. X X XINSTALLATION X XCopy ListPlot to a directory in your path. The file plstnd.fnt Xcontains the fonts that ListPlot uses. It looks for this file in Xplfonts:plstnd.fnt. So you need to store this file in a convenient Xdirectory and make the appropriate assign. X X Example: X makedir sys:plfonts X copy plstnd.fnt sys:plfonts X assign plfonts: sys:plfonts X XYou'll probably want to add the "assign" command to your startup sequence. X(plstnd.fnt is the same as that used in the most recent versions X(3.0 or higher) of PLPLOT) X XListPlot uses the FFP math libraries supplied by Commodore, so make Xsure the mathtrans.library file is in your libs: directory. X XThe PLPLOT library uses the palette program that comes with the XWorkBench 1.3 enhancer package as a color requester. PLPLOT looks for Xthis program in tools: and, if it's not there, it looks in sys:tools. XYou'll probably want to assign" tools: to the directory in which the Xpalette program resides. (At least until you get the colors set the Xway you want them.) X X X XTRYING OUT LISTPLOT X XBecause of the large number of command line options, it usually easiest Xto create simple shell scripts to call ListPlot. Some example Xscripts are provided in the examples directory. (These are standard XAmiga shell scripts). To test out ListPlot, try one or all of the Xfollowing X X execute lineplot lineinput X execute logplot loginput X execute polarplot polarinput X X X XTHE DEVICE DRIVERS X XThe device drivers are those provided by PLPLOT. I've excerpted the Xfollowing descriptions from the PLPLOT distribution. X X Amiga window X X You can resize the window while the program is plotting in the X window (see the "Redraw Enabled" section below). X Use the close gadget to close the window and exit ListPlot. X X "Plplot" menu selections: X X "Save Configuration" X - Saves current window configuration (window size, screen type, X screen depth, colors, resolution, etc.). The configuration X is saved in s:Plplot.def (only 54 bytes). X X "Reset" X - Resets the window to the configuration in s:Plplot.def X (or to a default config if this file doesn't exist). X X "Maintain Plot Aspect" X - If this is checked the plot aspect ratio is maintained as the X window is resized (handy for polar plots, etc.). Default X is unchecked in which case x and y are stretched X independently to fit in the window. X X "Redraw Enabled" X - If this is checked, then the graphics commands are buffered X in t:plplot.dat. This file is used to redraw the plot when X required. It's status is checked only when a new graph is X started. The buffer is also used to create the "Full Page" X prints under the "Print" selection. X X "Select Screen Type" X - A submenu allows the user to select either "Workbench" or X "Custom". X X "Print" X - There are three submenu options here. The "Bitmap Dump" X does just that (with full preferences support). The X output is pretty jagged, but you can play around with X the preferences stuff (scaling, smoothing, etc.) to X improve things. The other two submenus are X "Full Page (Landscape)" and "Full Page (Portrait)". This X uses the graphics buffer file (see "Redraw Enabled" above) X to create graphics output similar to the preferences X driver. However the aspect ratio can not be maintained. X Same preferences options are used as in preferences driver. X X "Save Bitmap as IFF File" X - Self explanatory. You can use this to save your images and X then touch them up (do area fills, etc.) with your favorite X paint program. X X "Screen Format" selections: (This menu only appears on the custom screen) X "Interlaced" X "High Resolution" X "Number of Colors" X "Set Color Palette" X - I think these are all self-explanatory. You can select either X 2, 4, 8, or 16 colors. X X X X Preferences X X The preferences driver creates a black and white graph on your X preferences supported printer. It uses the preferences selected X density and page size limits and ignores most of the other stuff. X If you have selected "ignore" in the page size limit options X (see the 1.3 Enhancer manual) then a full page graph is produced. X The other options operate as described in the Enhancer manual. X Only "ignore" and "bounded" produce aspect ratio correct plots X (usually unimportant unless x and y must have the same scaling X like for pie charts or polar plots). You can get very high quality X plots with this driver. A full page, high resolution plot X requires a lot of memory though (An 8"x10" 300 dpi plot requires X (8*300)*(10*300)/8 = 900000 bytes). You can use the page limits X to reduce the memory requirements and still get high quality X output. X X X iff X X The IFF driver will prompt for resolution and page size. X X X hp X X The plt: device is an HP plotter compatible device handler written by X Jim Miller and Rich Champeaux. It is freely redistributable, but X it is not included with this package (it's big enough already!). X It gives high quality output like the preferences driver but with X full preferences support. Usually requires less memory (for full X page plots) than the preferences driver, but is slower. Highly X recommended if you have a color printer or are memory strapped. X I don't know exactly which model HP plotter this is compatible X with (the HP7470 I think). X X X aegis X X I created this one because I have Draw2000 and it was easy to do. X This provides a very convenient method for touching up simple X graphs with paint-like tools. X X X postscript X X Encapsulated PostScript File. X X X X XTHINGS YET TO BE DONE X XThere may be a 3D/contour version of ListPlot if there is enough interest. X(PLPLOT does 3D and contour plotting and so the extension to ListPlot should Xbe fairly simple.) X X XREPORT BUGS TO X X Tony Richardson X X EMAIL amr@dukee.egr.duke.edu (Internet address) X X USMAIL Tony Richardson Tony Richardson X Dept of Elect Eng 311 S. LaSalle St. #41B X Duke University Durham, NC 27705 X Durham, NC 27706 X X ph 919-660-5262 ph 919-286-7101 X END_OF_FILE if test 7752 -ne `wc -c <'README'`; then echo shar: \"'README'\" unpacked with wrong size! fi chmod +x 'README' # end of 'README' fi if test ! -d 'docs' ; then echo shar: Creating directory \"'docs'\" mkdir 'docs' fi if test -f 'docs/ListPlot.1' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'docs/ListPlot.1'\" else echo shar: Extracting \"'docs/ListPlot.1'\" \(9286 characters\) sed "s/^X//" >'docs/ListPlot.1' <<'END_OF_FILE' X.de PP X.sp 1;.ne 2 X.en X.TH ListPlot 1 "AMIGA Manual" 5/15/90 "Duke University" X.SH NAME XListPlot - a vanilla plotting filter X.SH SYNOPSIS X.B ListPlot X[ options ] X.SH DESCRIPTION X.I ListPlot Xa simple 2D plotting filter based on the X.I PLPLOT Xplotting library. X.PP XIts principle advantage is that it supports a variety of graphics Xdevices. X.PP X.IR ListPlot Xreads from stdin and writes to stdout unless input and/or Xoutput files are specified on the command line. XThe program accepts a file of n-tuples. Each tuple consists of Xa sequence of space-separated numbers terminated with a newline. XThe first element of each tuple is assumed to be the independent Xvariable. Each remaining element is plotted against the first to Xproduce n-1 curves. X.PP X.IR ListPlot Xtakes a number of command line arguments that may be Xused to control the appearance of the plots. XCommand line arguments are specified in the form X.ti +10 X.IR variable=value X.PP XFor a list of the arguments enter: X.sp X.ti +10 XListPlot Help=All. X.SH VARIABLES TYPES X.ta X.in 20 X.ta 20 X.ti -10 X.B Boolean X@tvalues accept values such as X.B true, false, yes, no, on, off, 0, Xand X.B 1 X(ex. PlotColor=yes). X.sp X.ti -10 X.B String X@tvalues expect the strings to entered as Xindicated and is case sensitive (ex. Domain=All). X.sp X.ti -10 X.B Dbl X@tvalues expect real numbers (ex. AspectRatio=1.0). X.sp X.ti -10 X.B Interval X@tvalues expect a pair of comma separated reals X(ex. Range=-1.0,3.0). X.sp X.ti -10 X.B Set X@tvalues expect a list of comma separated elements enclosed in Xcurly braces ({}). (ex. LineStyle={MS,MMS,MSmmS}) X.sp X.ti -10 X.B Rect X@tvalues expect a list of comma separated numbers representing Xa diagonal from the lower-left corner to the upper-right corner X(ex. ViewPort={0.1,0.3, 0.9,0.6}). X.in 10 X X.PP XThe title and label variables accept strings that include Xthe following control sequences: X.sp X.in +10 X.B #u: Xmove up to superscript (ended with X.B #d X) X.br X.B #d: Xmove down to subscript (ended with X.B #u X) X.br X.B #b: Xbackspace to allow overprinting X.br X.B ##: Xthe number symbol X.br X.B #+: Xtoggle overline mode X.br X.B #-: Xtoggle underline mode X.br X.B #gx: XGreek letter corresponding to Roman letter x X.br X.in -10 X.SH OPTIONS XThe currently available arguments are indicated below. X.B Bold Xface arguments indicate that they should be entered Xexactly as shown. XAn '*' indicates that an arbitrary string may be given. XA string with embedded spaces must be quoted. X X.in +10 X.ti -10 X.B AngularUnit=[ degrees | radians ] X.br X.I AngularUnit Xspecifies the angular unit of measure Xused for polar plots. For angles in radians use X.B AngularUnit=radians. X.sp 1 X.ti -10 X.B AnnotationScale=[ X.I dbl X.B ] X.br X.I AnnotationScale Xcontrols the size of the characters Xused to annotate the axes. X.sp 1 X.ti -10 X.B AspectRatio=[ X.I dbl X.B | Automatic ] X.br X.I AspectRatio Xcontrols the relative lengths of the vertical to horizontal axes. XIf set this value overrides the value of X.I ViewPort. X.sp 1 X.ti -10 X.B Boxed=[ X.I boolean X.B | * ] X.br X.I Boxed Xadds axes to the edges of the plot. XIf X.I Boxed Xis given a boolean value then axes are placed on Xall of the edges. If X.I Boxed Xis given a string consisting Xof one or more of X.I t, b, r, l Xthen axes are added to Xtop, bottom, right and left edges respectively. X.sp 1 X.ti -10 X.B Domain=[ X.I interval X.B | All | Automatic ] X.br X.I Domain Xmay be used to specify the bounds on the X axis. XWhen set to X.B All, Xall points are plotted. When set to X.B Automatic, Xoutlying points may not be plotted. X.sp 1 X.ti -10 X.B Gridding=[ X.I boolean X.B ] X.br X.I Gridding Xputs a grid on the plot. X.sp 1 X.ti -10 X.B Help=[ All | all | * ] X.br X.I Help Xprovides some descriptive text for the user-settable Xplotting variables. If the variable X.I Verbose Xis set then an extended description is provided. To set verbose enter X.br X.sp XListPlot Verbose=yes Help=[ X.I variable X| X.B All X]. X.sp 1 X.ti -10 X.B LabelScale=[ X.I dbl X.B ] X.br X.I LabelScale Xspecifies the relative size of the vertical and Xhorizontal axis labels. The typical range is [0.5 - 2.0]. X.sp 1 X.ti -10 X.B LineColor=[ X.I set X.B ] X.br X.I LineColor Xmay be used to specify a list of line colors for Xplots with multiple curves if this feature is supported for Xa particular output device. X.sp 1 X.ti -10 X.B LineStyle=[ X.I set X.B ] X.br X.I LineStyle Xmay be used to specify a list of line styles for Xplots with multiple curves. Each linestyle is specified as Xa sequence of pen down... pen up elements. The elements are encoded Xusing the following characters to indicate element lengths: X.in +10 X.br X.B m: X250 micron mark X.br X.B M: X1mm mark X.B (mmmm) X.br X.B s: X250 micron space X.br X.B S: X1mm space X.B (ssss) X.br X.in -10 XFor example, a set of line styles might be indicated X.ti +10 XLineStyle={MS,MMSS,MMSmmS,mmS,mmSmmSMMS} X.sp 1 X.ti -10 X.B Orientation=[ portrait | landscape ] X.br X.I Orientation Xcontrols whether the plot is displayed in Xlandscape or portrait orientation. X.sp 1 X.ti -10 X.B Origin=[ X.I interval X.B | Automatic | Median ] X.br X.I Origin Xallows the placement of a set of axes at an Xarbitrary point. XThe X.I Median Xvalue places the axes at the median X.I X Xand the median X.I Y Xof the data values. X.sp 1 X.ti -10 X.B PlotColor=[ X.I boolean X.B ] X.br X.I PlotColor Xif X.B true Xcauses the plot to generated in color if this Xfeature is supported on a particular output device. X.sp 1 X.ti -10 X.B PlotJoined=[ X.I boolean X.B ] X.br X.I PlotJoined, Xif set, connects each data point with a line in the Xcurrent line style. X.sp 1 X.ti -10 X.B PlotPoints=[ X.I boolean X.B ] X.br X.I PlotPoints Xif X.B true Xcauses symbols to be plotted in the current Xsymbol style at each data point. X.sp 1 X.ti -10 X.B PointScale=[ X.I dbl X.B ] X.br X.I PointScale Xcontrols the relative size of the data point symbols Xwhen data point symbols are being plotted. X.sp 1 X.ti -10 X.B PointSymbol=[ Automatic | X.I set X.B ] X.br X.I PointSymbol Xspecifies a list of symbols to be used when plotting Xdata points. The symbols types are encoded as integers. X(See the X.B PLPLOT Xlibrary documentation to find the symbols available.) X.sp 1 X.ti -10 X.B PlotTitle=[ * ] X.br X.I PlotTitle Xtakes the plot title as an argument. XText control sequences described above may be included. X.sp 1 X.ti -10 X.B PlotDevice=[amiga| printer | iff | X.B hp | aegis | postscript] X.br X.I PlotDevice Xspecifies output device type. X.sp 1 X.ti -10 X.B PlotType=[ linlin | loglin | X.B linlog | loglog | polar ] X.br X.I PlotType Xspecifies the X.I graph paper Xupon which the plot is drawn. XThe current implementation plots in X.in +10 X.br Xlinear-linear, X.br Xlog-linear, X.br Xlinear-log, X.br Xlog-log, and X.br Xpolar X.br X.in -10 X.sp Xformats. XFor the log type plots, the log of the data is computed. XFor polar plots, see also X.I AngularUnit Xand X.I PolarVariable. X.sp 1 X.ti -10 X.B PolarVariable=[ angle | radius ] X.br X.I PolarVariable Xfor polar plots is used to specify Xwhether the independent variable is angular or radial. X.sp 1 X.ti -10 X.B Range=[ X.I interval X.B | All | Automatic ] X.br X.I Range Xspecifies the y axis bounds. (ex. Range=-1,1 ) XWhen set to X.B All, Xall points are plotted. When set to X.B Automatic, Xoutlying points may not be plotted. X.sp 1 X.ti -10 X.B SubPages=[ X.I interval X.B ] X.br X.I SubPages Xspecifies the number of plots on a pages. XThis is a vestige of PLPLOT and I am not sure this has any use Xwithin the context of X.I ListPlot. XIt might be useful for Xcontrolling the size of the plots but the X.I ViewPort Xmight be a more direct solution. X.sp 1 X.ti -10 X.B SupplyAbscissa=[ X.I boolean X.B ] X.br X.I SupplyAbscissa Xif set causes X.I ListPlot Xto supply a value for the independent variable. X.sp 1 X.ti -10 X.B TitleScale=[ X.I dbl X.B ] X.br X.I TitleScale Xcontrols the relative size of the title text. X.sp 1 X.ti -10 X.B UseInputFile=[ * ] X.br X.I UseInputFile Xpermits the specification of an input file if you would rather not use stdin. X.sp 1 X.ti -10 X.B UseOutputFile=[ * ] X.br X.I UseOutputFile Xpermits the specification of an output file if Xyou would rather not use stdout. X.sp 1 X.ti -10 X.B Verbose=[ X.I boolean X.B ] X.br X.I Verbose Xif set causes extended messaging. X.sp 1 X.ti -10 X.B ViewPort=[ X.I rect X.B ] X.br X.I ViewPort Xallows control over the size of a plot. Takes Xa viewing rectangle diagonal as an argument. X.ti +10 Xex. ViewPort={0.1,0.3, 0.9,0.6} X.sp 1 X.ti -10 X.B XLabel=[ * ] X.br X.I XLabel Xspecifies X axis label. Text control sequences described Xabove may be included. X.sp 1 X.ti -10 X.B YLabel=[ * ] X.br X.I YLabel Xspecifies Y axis label. Text control sequences described Xabove may be included. X.sp 1 X.ti -10 X.B XTick=[ Automatic | X.I interval X.B ] X.br X.I XTick Xcontrols the spacing of major axis ticks and the number Xof minor subdivisions. (ex. X.I XTick=0.1,10 Xindicates major ticks at units of 0.1 with 10 minor subdivisions.) X.sp 1 X.ti -10 X.B YTick=[ Automatic | X.I Interval X.B ] X.br X.I YTick Xcontrols the spacing of major axis ticks and the number Xof minor subdivisions. X.in -10 X.SH FILES X.SH IDENTIFICATION XAuthors: Frederick R. Bartram and Anthony M. Richardson, XDept. of Electrical Engineering, Duke University, Durham, N.C. 27706. X.sp 0 XInterNet: frb@@dukee.egr.duke.edu,amr@@dukee.egr.duke.edu X.sp 0 XCopyright 1990 by Frederick R. Bartram and Anthony M. Richardson. X.sp 0 XAmiga port by Anthony M. Richardson X.SH BUGS XPlease report any bugs or unusual X.I features Xto the authors. X END_OF_FILE if test 9286 -ne `wc -c <'docs/ListPlot.1'`; then echo shar: \"'docs/ListPlot.1'\" unpacked with wrong size! fi chmod +x 'docs/ListPlot.1' # end of 'docs/ListPlot.1' fi if test ! -d 'examples' ; then echo shar: Creating directory \"'examples'\" mkdir 'examples' fi if test -f 'examples/README' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'examples/README'\" else echo shar: Extracting \"'examples/README'\" \(595 characters\) sed "s/^X//" >'examples/README' <<'END_OF_FILE' XSome example shell scripts. To execute them, try one or all of the Xfollowing X X execute lineplot lineinput [ title [ xlabel [ ylabel [ device ] ] ] ] X execute polarplot polarinput [ device ] X execute logplot loginput [ title [ xlabel [ ylabel [ device ] ] ] ] X Xwhere the parameters in brackets are optional. (They must be given in order Xhowever, so to specify the device in lineplot you must also give the title, Xxlabel, and ylabel. They can be a null string, i.e. "".) X XFor example X X execute lineplot lineinput "lineplot title" x y X execute lineplot lineinput "" "" "" printer X Xwill work. END_OF_FILE if test 595 -ne `wc -c <'examples/README'`; then echo shar: \"'examples/README'\" unpacked with wrong size! fi chmod +x 'examples/README' # end of 'examples/README' fi if test -f 'examples/lineinput' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'examples/lineinput'\" else echo shar: Extracting \"'examples/lineinput'\" \(5577 characters\) sed "s/^X//" >'examples/lineinput' <<'END_OF_FILE' X0 1 0 0 0 0 0 X0.0624142659996 0.975000602516165 0.0246867120350244 0.000325963707470416 2.83918799971519e-06 1.79095227746708e-08 0 X0.133210252337 0.948902197912002 0.0497189913655889 0.001379511913532 2.59328535658923e-05 3.65593801692851e-07 0 X0.172516521193 0.935347745422446 0.0624083012597769 0.00222225867601974 5.38637907472896e-05 9.8380765371158e-07 0 X0.213794643999 0.921779199279238 0.0748849436231381 0.003275291410593 9.78595233132723e-05 2.210793482842e-06 0 X0.256847725809 0.908310863809264 0.0870355427985956 0.00453332769522971 0.000161817266342316 4.37818860429115e-06 0 X0.301605509781 0.895004027077018 0.0988007066432552 0.00599004441697427 0.000249660801826203 7.90239182163579e-06 0 X0.396312652365 0.868986073597704 0.121071195644578 0.00947345573792869 0.000512958574776662 2.11558364147392e-05 0 X0.446405754264 0.856297854731372 0.131556899793149 0.0114872378125695 0.000696566845477585 3.22136353679849e-05 0 X0.498466272956 0.843828316318772 0.1416065367674 0.013673821423586 0.000920385815173747 4.73053920354108e-05 0 X0.552625632079 0.831577393429666 0.151221308616221 0.0160266815432544 0.00118869902075472 6.74032031035221e-05 0 X0.609033610348 0.819543609281791 0.160403713266031 0.018539143158353 0.00150587278987017 9.3623299247275e-05 0 X0.667858658099 0.807724658416469 0.169156991706436 0.0212043305639878 0.00187635263593157 0.000127239072195589 0 X0.72928932375 0.796117704829654 0.177484847209452 0.0240151283098572 0.00230465796593185 0.000169695006832654 0 X0.793536524413 0.784719529140189 0.185391305223848 0.0269641503793757 0.00279537506306672 0.000222621512091647 0 X0.860836564017 0.773526595671987 0.19288064553918 0.030043714605242 0.00335314807288855 0.00028785060264017 0 X0.931454910556 0.762535076660997 0.199957371242872 0.0332458842464559 0.00398266755103768 0.000367432324851585 0 X1.0056908222 0.751740853062543 0.206626199709417 0.0365624055536974 0.00468865779790378 0.000463651767561829 0 X1.08388300603 0.74113949850189 0.212892062502331 0.039984573142403 0.00547585972449395 0.00057904642516979 0 X1.1664164853 0.730726258864607 0.218760099141317 0.0435033016580664 0.00634900538648584 0.00071642334378004 0 X1.25353033988 0.720518573189794 0.224223940690487 0.0471009754355147 0.00731052758776947 0.000878480107113036 0 X1.34526251142 0.710554489224857 0.229269773529629 0.0507504900406125 0.00835939823814199 0.00106747418920921 0 X1.44178568335 0.700851896790801 0.233898354968237 0.0544298583158873 0.00949469114854831 0.001285732095684 0 X1.54337584866 0.69141675990394 0.238118663743092 0.0581205081833355 0.0107153782514528 0.00153561188721623 0 X1.65038415891 0.682248937676021 0.241943854509882 0.0618058138161236 0.0120200313394538 0.0018194295870221 0 X1.76322270765 0.673345262578364 0.245389210129296 0.0654702928182232 0.0134066042880691 0.00213937993740146 0 X1.88235897446 0.664701122436392 0.248471126325574 0.0690992071652408 0.0148722753240229 0.00249745153097419 0 X2.00831531167 0.65631127625734 0.251206599966879 0.0726783881943948 0.0164133281742013 0.00289533493875804 0 X2.14167145755 0.648170283617388 0.253612956992381 0.0761941831130422 0.01802511816874 0.00333432325251909 0 X2.28306900767 0.640272740092271 0.255707691298885 0.0796334718201388 0.019701906384963 0.00381520850508767 0 X2.43321732144 0.632613414175075 0.257508352049283 0.0829837073003582 0.0214368078621009 0.00433816825353668 0 X2.59290061829 0.625187333190536 0.259032448438245 0.0862329699206647 0.0232217820634079 0.00490265026171294 0 X2.76298623652 0.617989838304569 0.260297357810881 0.089370027283427 0.025047614661897 0.00550726150545833 0 X2.94443416056 0.611016615783375 0.261320230068056 0.0923843889119344 0.026903923395086 0.00614966640295529 0 X3.13830802651 0.604263705007978 0.262117884268384 0.095266349847073 0.0287791923284114 0.00682651779159989 0 X3.34578794818 0.597727479086115 0.262706694853832 0.0980070188056289 0.0306608413724738 0.00753340895981668 0 X3.56818566862 0.591404590892924 0.263102465468597 0.100598327957843 0.0325353350926351 0.00826478061729379 0 X3.80696276484 0.585291875036558 0.263320288409549 0.10303302167103 0.0343883227791975 0.00901398938649271 0 X4.06375293986 0.57938619434267 0.263374387506029 0.105304623978308 0.0362048299506264 0.00977338619223948 0 X4.34038986699 0.573684217747211 0.26327794233587 0.107407387480052 0.0379694949476494 0.0105344550369289 0 X4.63894268383 0.568182114577602 0.263042891783894 0.109336227948033 0.0396668488603828 0.0112880135030757 0 X4.96176211529 0.562875148927135 0.262679715006632 0.111086650513099 0.0412816331986143 0.0120244708508709 0 X5.31154147026 0.557757156517442 0.262197187696265 0.112654673763616 0.042799145223298 0.0127341330598372 0 X5.69139857798 0.552819884796516 0.261602110575331 0.114036756647215 0.0442055956925562 0.013407537490976 0 X6.10498738659 0.548052173996062 0.260899004394865 0.115229729094501 0.0454884583315224 0.0140357940229723 0 X6.5566519021 0.543438950316436 0.260089759988816 0.116230720333116 0.046636785237325 0.0146109056297455 0 X7.05164122098 0.538959988387359 0.259173221191865 0.117037068749279 0.0476414584135912 0.0151260403246803 0 X7.59641409827 0.534588371958623 0.258144659751974 0.117646183711608 0.0484953452070583 0.0155757285976794 0 X8.19907763406 0.53028852811026 0.256995070048419 0.118055312120576 0.0491933242904013 0.0159559654626893 0 X8.87003281235 0.526013611284574 0.255710158788236 0.118261137493615 0.049732146996445 0.0162642024216866 0 X9.62295117336 0.521701831109378 0.254268839221448 0.118259098910249 0.0501100912408687 0.0164992190441375 0 END_OF_FILE if test 5577 -ne `wc -c <'examples/lineinput'`; then echo shar: \"'examples/lineinput'\" unpacked with wrong size! fi # end of 'examples/lineinput' fi if test -f 'examples/lineplot' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'examples/lineplot'\" else echo shar: Extracting \"'examples/lineplot'\" \(443 characters\) sed "s/^X//" >'examples/lineplot' <<'END_OF_FILE' X.k filename/a,pltitle,plxlabel,plylabel,pldevice X X; Invoke this shell script via X; X; lineplot filename [ title [ xlabel [ylabel [ device ] ] ] ] X; X; where file filename contains the data to be plotted X X.def pldevice amiga X.def pltitle "ListPlot Example" X.def plxlabel "X Axis" X.def plylabel "Y Axis" X X/ListPlot + X "UseInputFile=<filename>" + X "PlotTitle=<pltitle>" + X "XLabel=<plxlabel>" + X "YLabel=<plylabel>" + X "PlotDevice=<pldevice>" END_OF_FILE if test 443 -ne `wc -c <'examples/lineplot'`; then echo shar: \"'examples/lineplot'\" unpacked with wrong size! fi chmod +x 'examples/lineplot' # end of 'examples/lineplot' fi if test -f 'examples/loginput' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'examples/loginput'\" else echo shar: Extracting \"'examples/loginput'\" \(408 characters\) sed "s/^X//" >'examples/loginput' <<'END_OF_FILE' X0.001 1 1 0.5 0.1 0.3 10 X1 1 1 0.5 0.1 0.3 10 X2 1 1 0.5 0.1 0.3 10 X3 1 1 0.5 0.1 0.3 10 X4 1 1 0.5 0.1 0.3 10 X5 1 1 0.5 0.1 0.3 10 X6 1 1 0.5 0.1 0.3 10 X7 1 1 0.5 0.1 0.3 10 X8 1 1 0.5 0.1 0.3 10 X9 1 1 0.5 0.1 0.3 10 X10 1 1 0.5 0.1 0.3 10 X20 1 1 0.5 0.1 0.3 10 X30 1 1 0.5 0.1 0.3 10 X40 1 1 0.5 0.1 0.3 10 X50 1 1 0.5 0.1 0.3 10 X60 1 1 0.5 0.1 0.3 10 X70 1 1 0.5 0.1 0.3 10 X80 1 1 0.5 0.1 0.3 10 END_OF_FILE if test 408 -ne `wc -c <'examples/loginput'`; then echo shar: \"'examples/loginput'\" unpacked with wrong size! fi # end of 'examples/loginput' fi if test -f 'examples/logplot' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'examples/logplot'\" else echo shar: Extracting \"'examples/logplot'\" \(485 characters\) sed "s/^X//" >'examples/logplot' <<'END_OF_FILE' X.k filename/a,pltitle,plxlabel,plylabel,pldevice X X; Invoke this shell script via X; X; lineplot filename [ title [ xlabel [ylabel [ device ] ] ] ] X; X; where file filename contains the data to be plotted X X.def pldevice amiga X.def pltitle "ListPlot Example" X.def plxlabel "X Axis" X.def plylabel "Y Axis" X X/ListPlot + X "UseInputFile=<filename>" + X "PlotType=loglog" + X "Range=.01,100" + X "PlotTitle=<pltitle>" + X "XLabel=<plxlabel>" + X "YLabel=<plylabel>" + X "PlotDevice=<pldevice>" END_OF_FILE if test 485 -ne `wc -c <'examples/logplot'`; then echo shar: \"'examples/logplot'\" unpacked with wrong size! fi chmod +x 'examples/logplot' # end of 'examples/logplot' fi if test -f 'examples/polarinput' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'examples/polarinput'\" else echo shar: Extracting \"'examples/polarinput'\" \(1593 characters\) sed "s/^X//" >'examples/polarinput' <<'END_OF_FILE' X0 0 X0.0634665 2.49627 X0.126933 4.74326 X0.1904 6.51661 X0.253866 7.63922 X0.317333 7.99899 X0.380799 7.56001 X0.444266 6.36609 X0.507732 4.53648 X0.571199 2.25386 X0.634665 0.253823 X0.698132 2.73616 X0.761598 4.94527 X0.825065 6.66056 X0.888531 7.71074 X0.951998 7.99094 X1.01546 7.47318 X1.07893 6.20917 X1.1424 4.32513 X1.20586 2.00918 X1.26933 0.507391 X1.3328 2.9733 X1.39626 5.1423 X1.45973 6.7978 X1.5232 7.77449 X1.58666 7.97484 X1.65013 7.37883 X1.7136 6.046 X1.77706 4.10942 X1.84053 1.76248 X1.904 0.760448 X1.96746 3.20744 X2.03093 5.33415 X2.0944 6.9282 X2.15786 7.83042 X2.22133 7.95071 X2.28479 7.27706 X2.34826 5.87673 X2.41173 3.88957 X2.47519 1.51401 X2.53866 1.01274 X2.60213 3.43836 X2.66559 5.52063 X2.72906 7.05163 X2.79253 7.87846 X2.85599 7.91857 X2.91946 7.16795 X2.98293 5.70155 X3.04639 3.66581 X3.10986 1.26401 X3.17333 1.26401 X3.23679 3.66581 X3.30026 5.70155 X3.36373 7.16795 X3.42719 7.91857 X3.49066 7.87846 X3.55413 7.05163 X3.61759 5.52063 X3.68106 3.43836 X3.74452 1.01274 X3.80799 1.51401 X3.87146 3.88957 X3.93492 5.87673 X3.99839 7.27706 X4.06186 7.95071 X4.12532 7.83042 X4.18879 6.9282 X4.25226 5.33415 X4.31572 3.20744 X4.37919 0.760448 X4.44266 1.76248 X4.50612 4.10942 X4.56959 6.046 X4.63306 7.37883 X4.69652 7.97484 X4.75999 7.77449 X4.82346 6.7978 X4.88692 5.1423 X4.95039 2.9733 X5.01385 0.507391 X5.07732 2.00918 X5.14079 4.32513 X5.20425 6.20917 X5.26772 7.47318 X5.33119 7.99094 X5.39465 7.71074 X5.45812 6.66056 X5.52159 4.94527 X5.58505 2.73616 X5.64852 0.253823 X5.71199 2.25386 X5.77545 4.53648 X5.83892 6.36609 X5.90239 7.56001 X5.96585 7.99899 X6.02932 7.63922 X6.09279 6.51661 X6.15625 4.74326 X6.21972 2.49627 X6.28319 2.84217e-14 END_OF_FILE if test 1593 -ne `wc -c <'examples/polarinput'`; then echo shar: \"'examples/polarinput'\" unpacked with wrong size! fi # end of 'examples/polarinput' fi if test -f 'examples/polarplot' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'examples/polarplot'\" else echo shar: Extracting \"'examples/polarplot'\" \(356 characters\) sed "s/^X//" >'examples/polarplot' <<'END_OF_FILE' X.k filename/a,pldevice X X; Invoke this shell script via X; X; lineplot filename [ device ] X; X; where file filename contains the data to be plotted X X.def pldevice amiga X X/ListPlot + X "UseInputFile=<filename>" + X "PlotType=polar" + X "Gridding=yes" + X "AngularUnit=radians" + X "AspectRatio=1." + X "PlotTitle=Polar Plot Example" + X "PlotDevice=<pldevice>" END_OF_FILE if test 356 -ne `wc -c <'examples/polarplot'`; then echo shar: \"'examples/polarplot'\" unpacked with wrong size! fi chmod +x 'examples/polarplot' # end of 'examples/polarplot' fi if test -f 'plstnd.fnt.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'plstnd.fnt.uu'\" else echo shar: Extracting \"'plstnd.fnt.uu'\" \(9035 characters\) sed "s/^X//" >'plstnd.fnt.uu' <<'END_OF_FILE' Xbegin 700 plstnd.fnt XM`;``AP"3`(L`C0"&`(P`AP"(`*L`J@"%`(D`B@"'`)$`D@"/`(X`D`"'`)0`C XME0"6`)<`F`"9`)H`FP"F`*0`I0"G`&4`=`!W`(,`>0"H`(0`=@![`'P`@0!_C XM`'$`?@!P`'H`9@!G`&@`:0!J`&L`;`!M`&X`;P!R`',`H`"``*$`=0"I``$`' XM`@`#``0`!0`&``<`"``)``H`"P`,``T`#@`/`!``$0`2`!,`%``5`!8`%P`8K XM`!D`&@"<`((`G0!X`((`HP`S`#0`-0`V`#<`.``Y`#H`.P`\`#T`/@`_`$``P XM00!"`$,`1`!%`$8`1P!(`$D`2@!+`$P`G@!]`)\`H@!E`!L`'``=`!X`'P`@` XM`"$`(@`C`"0`)0`F`"<`*``I`"H`*P`L`"T`+@`O`#``,0`R`$T`3@!/`%``E XM8@!1`%(`8P!3`%0`50!6`%<`6`!9`%H`6P!<`%T`7@!D`%\`8`!A`*L``0`,* XM`"8`.P!-`%L`9@!_`(H`CP"<`*<`KP"]`,@`X`#P`0L!'@$U`3T!2@%2`6`!M XM:`%Q`7P!AP&A`:D!M`'"`<T!V`'S`?@"`P(+`AD")`(O`D<"4@)B`FX"=@*+Q XM`J("J@*^`M$"Y0+Y`PH#'@,R`ST#5@-C`VX#?`.'`XP#H0.N`\(#U@/J`_4$, XM"004!"$$*00W!#\$2P16!'`$D02D!+X$UP3L!/<%#`47!2X%/@5=!7$%@`65M XM!:D%LP7%!=4%ZP8$!A8&+P9&!DH&7@9E!G8&B`:1!J4&OP;'!N<'`0<)!Q0'% XM(@<S!SX'50=:!V('<@>/!Y0'H0>N![,'N`?`!\@'TP?;!^D(#@@L"$`(2`A/" XM"%<(90AM"'4(@`BE",((V@CJ"/8(_@D*"1H)+@E""5H)?@FB"=8)Y`GR"@X*+ XM*@HP"C8*4`I9"F8*<PJ`"HT*KPKI"Q$++O<,]PD`#/CW0```#`CW0`#[_@7^U XM0$#W#/4*^0SY]T``^0P"#`4+!@H'"`<&!@0%`P("0`#Y`@("!0$&``?^!_L&T XM^07X`O?Y]T!`]PSV"P@'!PD%"P,,_PS]"_L)^@?Y!/G_^OS[^OWX__<#]P7X[ XM!_H(_$!`]PSU"OD,^?=``/D,``P#"P4)!@<'!`?_!OP%^@/X`/?Y]T!`]PSVC XM"?H,^O=``/H,!PQ``/H"`@)``/KW!_=`0/<,]@CZ#/KW0`#Z#`<,0`#Z`@("9 XM0$#W#/8+"`<'"04+`PS_#/T+^PGZ!_D$^?_Z_/OZ_?C_]P/W!?@'^@C\"/]`H XM``/_"/]`0/<,]0OY#/GW0``'#`?W0`#Y`@<"0$#W#/P$``P`]T!`]PSX"`0,O XM!/P#^0+X`/?^]_SX^_GZ_/K^0$#W#/4*^0SY]T``!PSY_D``_@,']T!`]PSVQ XM!_H,^O=``/KW!O=`0/<,]`SX#/CW0`#X#`#W0``(#`#W0``(#`CW0$#W#/4+^ XM^0SY]T``^0P']T``!PP']T!`]PSU"_X,_`OZ"?D'^`3X__G\^OK\^/[W`O<$B XM^`;Z!_P(_P@$!P<&"00+`@S^#$!`]PSU"OD,^?=``/D,`@P%"P8*!P@'!08#@ XM!0("`?D!0$#W#/4+_@S\"_H)^0?X!/C_^?SZ^OSX_O<"]P3X!OH'_`C_"`0'R XM!P8)!`L"#/X,0``!^P?U0$#W#/4*^0SY]T``^0P"#`4+!@H'"`<&!@0%`P("1 XM^0)````"!_=`0/<,]@H'"04+`@S^#/L+^0GY!_H%^P3]`P,!!0`&_P?]!_H%4 XM^`+W_O?[^/GZ0$#W#/@(``P`]T``^0P'#$!`]PSU"_D,^?WZ^OSX__<!]P3XZ XM!OH'_0<,0$#W#/<)^`P`]T``"`P`]T!`]PST#/8,^_=````,^_=````,!?=`= XM``H,!?=`0/<,]@KY#`?W0``'#/GW0$#W#/<)^`P``@#W0``(#``"0$#W#/8*T XM!PSY]T``^0P'#$``^?<']T!`]PSW"0`,^/=````,"/=``/O^!?Y`0/<,]0KY) XM#/GW0`#Y#`(,!0L&"@<(!P8&!`4#`@)``/D"`@(%`08`!_X'^P;Y!?@"]_GW8 XM0$#W#/8'^@SZ]T``^@P&#$!`]PSW"0`,^/=````,"/=``/CW"/=`0/<,]@GZ" XM#/KW0`#Z#`<,0`#Z`@("0`#Z]P?W0$#W#/8*!PSY]T``^0P'#$``^?<']T!`1 XM]PSU"_D,^?=```<,!_=``/D"!P)`0/<,]0O^#/P+^@GY!_@$^/_Y_/KZ_/C^R XM]P+W!/@&^@?\"/\(!`<'!@D$"P(,_@Q``/T"`P)`0/<,_`0`#`#W0$#W#/4*2 XM^0SY]T``!PSY_D``_@,']T!`]PSW"0`,^/=````,"/=`0/<,]`SX#/CW0`#XU XM#`#W0``(#`#W0``(#`CW0$#W#/4+^0SY]T``^0P']T``!PP']T!`]PSW"?D,U XM!PQ``/T"`P)``/GW!_=`0/<,]0O^#/P+^@GY!_@$^/_Y_/KZ_/C^]P+W!/@&< XM^@?\"/\(!`<'!@D$"P(,_@Q`0/<,]0OY#/GW0``'#`?W0`#Y#`<,0$#W#/4*W XM^0SY]T``^0P"#`4+!@H'"`<%!@,%`@(!^0%`0/<,]PGY#``"^?=``/D,!PQ`B XM`/GW!_=`0/<,^`@`#`#W0`#Y#`<,0$#W#/<)^0?Y"?H+^PS]#/X+_PD`!0#WS XM0``'!P<)!@L%#`,,`@L!"0`%0$#W#/8*``P`]T``_@?[!OH%^0/Y`/K^^_W^9 XM_`+\!?T&_@<`!P,&!04&`@?^!T!`]PSV"OD,!_=``/GW!PQ`0/<,]0L`#`#W$ XM0`#W!O@&^07Z`?O__/[__0']!/X%_P8!!P4(!@D&0$#W#/8*^??]]_K^^0+YK XM!OH)_`O_#`$,!`L&"0<&!P(&_@/W!_=`0/<,]PH&!0;W0``&`@0$`@7_!?T$` XM^P+Z__K]^_K]^/_W`O<$^`;Z0$#W#/8)^@SZ]T``^@+\!/X%`04#!`4"!O\&9 XM_07Z`_@!]_[W_/CZ^D!`]PSW"08"!`0"!?\%_03[`OK_^OW[^OWX__<"]P3XM XM!OI`0/<,]PH&#`;W0``&`@0$`@7_!?T$^P+Z__K]^_K]^/_W`O<$^`;Z0$#WH XM#/<)^O\&_P8!!0,$!`(%_P7]!/L"^O_Z_?OZ_?C_]P+W!/@&^D!`]PS[!P4,% XM`PP!"P`(`/=``/T%!`5`0/<,]PH&!0;U!?($\0+P__#]\4``!@($!`(%_P7]" XM!/L"^O_Z_?OZ_?C_]P+W!/@&^D!`]PSW"OL,^_=``/L!_@0`!0,%!00&`0;W; XM0$#W#/P$_PP`"P$,``W_#$````4`]T!`]PS[!0`,`0L"#`$-``Q```$%`?0`X XM\?[P_/!`0/<,]PC[#/OW0``%!?O[0`#__P;W0$#W#/P$``P`]T!`]PSQ#_4%$ XM]?=``/4!^`3Z!?T%_P0``0#W0````0,$!04(!0H$"P$+]T!`]PSW"OL%^_=`+ XM`/L!_@0`!0,%!00&`0;W0$#W#/<*_P7]!/L"^O_Z_?OZ_?C_]P+W!/@&^@?]G XM!_\&`@0$`@7_!4!`]PSV"?H%^O!``/H"_`3^!0$%`P0%`@;_!OT%^@/X`??^7 XM]_SX^OI`0/<,]PH&!0;P0``&`@0$`@7_!?T$^P+Z__K]^_K]^/_W`O<$^`;Z" XM0$#W#/D&_07]]T``_?_^`@`$`@4%!4!`]PSX"08"!00"!?\%_`3[`OP`_O\#B XM_@7]!OL&^@7X`O?_]_SX^_I`0/<,^P<`#`#[`?@#]P7W0`#]!00%0$#W#/<*@ XM^P7[^_SX_O<!]P/X!OM```8%!O=`0/<,^`CZ!0#W0``&!0#W0$#W#/4+^`7\2 XM]T````7\]T````4$]T``"`4$]T!`]PSX"?L%!O=```8%^_=`0/<,^`CZ!0#WN XM0``&!0#W_O/\\?KP^?!`0/<,^`D&!?OW0`#[!08%0`#[]P;W0$#W#/8+_P7]S XM!/L"^@#Y_?GZ^OC\]_[W`/@#^P7^!P((!4``_P4!!0($`P(%^@;X!_<(]T!`< XM]PSW"@,,`0O_"?T%_`+[_OKX^?!```,,!0P'"@<'!@4%!`,#``-````#`@($B XM``7^!?L$^0/X`??_]_WX_/G[_$!`]PSW"O@"^@3\!?T%_P0``P$``?P`]T``$ XM"`4'`@8``/?^\_WP0$#W#/<)`@7_!?T$^P+Z__K\^_G\^/[W`/<"^`3Z!?T%_ XM``0#`@4`!_\)_PL`#`(,!`L&"4!`]PSX!P(,``O_"O\)``@#!P8'0``&!P(%^ XM_P/\`/O]^_O\^?[W`?4"\P+Q`?#_\/[R0$#W#/8*]P'X`_H%_`7]!/T"_/[ZN XM]T``_/[^`@`$`@4$!08#!@`%^P+P0$#W#/H%``7^_OWZ_?C^]P#W`OD#^T!`: XM]PSW"?T%^?=```<$!@4%!0,$_P#]__S_0`#\__[^__T!^`+W`_<$^$!`]PSXH XM"/D,^PS]"_X*!O=````%^O=`0/<,]@O]!??P0`#\`?O\^_G]]__W`?@#^@7^/ XM0``'!07^!/H$^`7W!_<)^0K[0$#W#/<)^@7]!?S_^_KZ]T``!P4&`@4``_T`( XM^OWX^O=`0/<,^`@"#``+_PK_"0`(`P<&!T```P<`!OX%_0/]`?__`OX$_D``] XM`O[^_?S\^_K[^/WV`?0"\P+Q`/#^\$!`]PSX"0`%_@3\`OO_^_S\^?WX__<!D XM]P/X!?H&_08`!0,$!`(%``5`0/<,]0O^!?KW0``#!03_!?H&]T``]P+Y!/P%+ XM"05`0/<,]PG[__O\_/G]^/_W`?<#^`7Z!OT&``4#!`0"!0`%_@3\`OO_]_!`: XM0/<,]PL)!?\%_03[`OK_^OS[^?SX_O<`]P+X!/H%_04`!`,#!`$%0$#W#/8*N XM`07^]T``^`+Z!/T%"`5`0/<,]@KW`?@#^@7\!?T$_0+[_/OY_??_]P+X!/H&+ XM_@<"!P5`0/<,]PGY!?L%_0,#\@7P!_!```@%!P,%`/OU^?+X\$!`]PST"P0,F XM_/!``/4!]@/X!?H%^P3[`OK]^OK[^/WW__<"^`3Z!OT(`@D%0$#W#/0+_`7ZK XM!/@!]_[W^_CX^??[]_WX__M```#___L`^`'W`_<%^`?["/X(`0<$!@5`0/<,O XM^`@%!`,%``7^!/P"^__[_/SY_?C_]P+W!/A``/O^`_Y`0/<,^`D"#``+_@C]V XM!OP#^_[[^OSX_??_]P'X`_L$_04`!@4&"04+!`P"#$``_`(%`D!`]PSV"@0,N XM_/!``/\%_`3Z`OG_^?SZ^OSX__<!]P3X!OH'_0<`!@($!`$%_P5`0/<,^`A`3 XM`$!`]PSV"O\,_`OZ"/D#^0#Z^_SX__<!]P3X!OL'``<#!@@$"P$,_PQ`0/<,I XM]@K\"/X)`0P!]T!`]PSV"OH'^@C["OP+_@P"#`0+!0H&"`8&!00#`?GW!_=`M XM0/<,]@K[#`8,``0#!`4#!@('_P?]!OH$^`'W_O?[^/KY^?M`0/<,]@H##/G^- XM"/Y```,,`_=`0/<,]@H%#/L,^@/[!/X%`04$!`8"!_\'_0;Z!/@!]_[W^_CZ? XM^?G[0$#W#/8*!@D%"P(,``S]"_L(^@/Z_OOZ_?@`]P'W!/@&^@?]!_X&`00#5 XM`00`!/T#^P'Z_D!`]PSV"@<,_?=``/D,!PQ`0/<,]@K^#/L+^@GZ!_L%_00!X XM`P0"!@`'_@?[!OD%^`+W_O?[^/KY^?OY_OH`_`+_`P,$!04&!P8)!0L"#/X,@ XM0$#W#/8*!@4%`@,``/____P`^@+Y!?D&^@G\"_\,``P#"P4)!@4&``7[`_@`3 XM]_[W^_CZ^D!`]PS[!0#Y__@`]P'X`/E`0/<,^P4!^`#W__@`^0'X`?8`]/_SH XM0$#W#/L%``7_!``#`00`!4```/G_^`#W`?@`^4!`]PS[!0`%_P0``P$$``5`) XM``'X`/?_^`#Y`?@!]@#T__-`0/<,^P4`#`#^0```^?_X`/<!^`#Y0$#W#/<)? XM^@?Z"/L*_`O^#`(,!`L%"@8(!@8%!`0#``$`_D```/G_^`#W`?@`^4!`]PS\& XM!``,``5`0/<,^`C\#/P%0``$#`0%0$#W#/D'_PS]"_P)_`?]!?\$`00#!00'U XM!`D#"P$,_PQ`0/<,]@K^$/[S0``"$`+S0``'"04+`@S^#/L+^0GY!_H%^P3]W XM`P,!!0`&_P?]!_H%^`+W_O?[^/GZ0$#W#/4+"1#W\$!`]PSY!P00`@X`"_X'A XM_0+]_O[Y`/4"\@3P0$#W#/D'_!#^#@`+`@<#`@/^`OD`]?[R_/!`0/<,_`0`2 XM$`#P0$#W#/,-]P`)`$!`]PSS#0`)`/=``/<`"0!`0/<,\PWW`PD#0`#W_0G]) XM0$#W#/@(``8`^D``^P,%_4``!0/[_4!`]PS[!0`!_P``_P$```%`0/<,]@L!, XM$/KP0``'$`#P0`#Z`P@#0`#Y_0?]0$#W#/,-"@,*!`D%"`4'!`8"!/T"^@#X$ XM_O?Z]_CX]_GV^_;]]__X`/\$``4!!P$)``O^#/P+^PG[!_P$_@$#^@7X!_<)4 XM]PKX"OE`0/<,]0OW"?@'^0/Y_?CY]_=```D)"`<'`P?]"/D)]T``]PGY"/T'$ XM`P<'"`D)0`#W]_GX_?D#^0?X"?=`0/<,^0?_!_P&^@3Y`?G_^OS\^O_Y`?D$8 XM^@;\!_\'`08$!`8!!_\'0$#W#/H&^@;Z^@;Z!@;Z!D!`]PSY!P`(^?P'_``(Z XM0$#W#/H&``KZ``#V!@``"D!`]PSX"``)_@/X`_W_^_D`_07Y`_\(`P(#``E`; XM0/<,^0<`!P#Y0`#Y``<`0$#W#/L%^P4%^T``!07[^T!`]PS[!0`&`/I``/L#' XM!?U```4#^_U`0/<,_`3_!/T#_`'\__W]__P!_`/]!/\$`0,#`03_!$``_0']# XM_T``_@+^_D``_P/__4````,`_4```0,!_4```@("_D```P$#_T!`]PS\!/P$( XM_/P$_`0$_`1``/T#_?U``/X#_OU``/\#__U````#`/U```$#`?U```(#`OU`Z XM``,#`_U`0/<,^@8`!OS[!@+Z`@3[``9```````9`````^@)`````_/M`````( XM!/M`````!@)`0/<,^@;^!OX"^@+Z_O[^_OH"^@+^!OX&`@("`@;^!D!`]PSY* XM!P`(^?P'_``(0```^`<$^00`^$!`]PS_`0`!_P``_P$```%`0/<,_@+_`OX!. XM_O___@'^`O\"`0$"_P)`0/<,_`3_!/T#_`'\__W]__P!_`/]!/\$`0,#`03_# XM!$!`]PS[!?\%_03\`_L!^__\_?W\__L!^P/\!/T%_P4!!`,#!`$%_P5`0/<,. XM^0?_!_P&^@3Y`?G_^OS\^O_Y`?D$^@;\!_\'`08$!`8!!_\'0$#W#/4+_@O[- XM"O@(]@7U`O7^]OOX^/OV_O4"]07V"/@*^PO^"P(*!0@(!0H""_X+0$#W#.\1( XM_A'Z$/@/]0WS"_$(\`;O`N_^\/KQ^//U]?/X\?KP_N\"[P;P"/$+\PWU#_@0' XM^A'^$0(0!@\(#0L+#0@/!A`"$?X10$#W#.H6_A;Y%?43\A'O#NT+ZP?J`NK^S XMZ_GM]>_R\N_U[?GK_NH"Z@?K"^T.[Q'R$_45^1;^%@(5!Q,+$0X.$0L3!Q4"" XM%OX60$#W#-<I_2GW*/,G[B7I(N4?X1O>%]L2V0W8"=<#U_W8]]GSV^[>Z>'ER XMY>'IWN[;\]GWV/W7`]<)V`W9$ML7WAOA'^4BZ27N)_,H]RG]*0,H"2<-)1(BO XM%Q\;&Q\7(A(E#2<)*`,I_2E`0/<,^0?]$/WP0`#^$/[P0`#]$`000`#]\`3PM XM0$#W#/D'`A`"\$```Q`#\$``_!`#$$``_/`#\$!`]PSX!P(0_PW^"OX(_P4!^ XM`P$"_0`!_@']__O^^/[V__,"\$````[_"_\'``1```#\__G_]0#R0$#W#/D(( XM_A`!#0(*`@@!!?\#_P(#`/_^__T!^P+X`O8!\_[P0```#@$+`0<`!$```/P!J XM^0'U`/)`0/<,]`P("?@`"/=`0/<,]`SX"0@`^/=`0/<,]`SW_??_^`+Z`_P#* XM_@("_P3^!OX(_PD!0`#W__@!^@+\`OX!`OX$_0;]"/X)`0D#0$#W#/H&_@P#P XM!D``_@S]"P,&0$#W#/,-!@()``;^0``#!0@``_M``/<`"`!`0/<,^`C^!@`)6 XM`@9``/L#``@%`T````@`]T!`]PSS#?H"]P#Z_D``_07X`/W[0`#X``D`0$#WM XM#/@(_OH`]P+Z0`#[_0#X!?U````)`/A`0/<,]`P)#/?W0`#\#/X*_@C]!OL%) XM^07W!_<)^`OZ#/P,_@L!"@0*!PL)#$``!?X#_0+[`OD$]P;W"/@)^@G\!_X%; XM_D!`]PSS#@4$!`8"!_\'_0;\!?L"^__\_?[\`?P#_03_0`#_!_T%_`+\__W]- XM_OQ```4'!/\$_0;\"/P*_@L!"P,*!@D(!PH%"P(,_PS\"_H*^`CW!O8#]@#W[ XM_?C[^OG\^/_W`O<%^`?Y"/I```8'!?\%_0;\0$#W#/,._PS\"_D)]P;V`_8`> XM]_WY^OSX__<"]P7X"/H*_0L`"P,*!@@)!0L"#/\,0````_\"_P$```$``@$"] XM`@$#``-````"``$!`0$"``)`0/<,\@[^#/L+^`GV!O4#]?_V_/CY^_?^]@+V0 XB!?<(^0K\"_\+`PH&"`D%"P(,_@Q````,`/9``/4!"P%`0/_V= X`` Xend Xsize 6424 END_OF_FILE if test 9035 -ne `wc -c <'plstnd.fnt.uu'`; then echo shar: \"'plstnd.fnt.uu'\" unpacked with wrong size! fi # end of 'plstnd.fnt.uu' fi echo shar: End of archive 1 \(of 3\). cp /dev/null ark1isdone MISSING="" for I in 1 2 3 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 3 archives. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0 -- Mail submissions (sources or binaries) to <amiga@uunet.uu.net>. Mail comments to the moderator at <amiga-request@uunet.uu.net>. Post requests for sources, and general discussion to comp.sys.amiga.