.variant subr .qa TOPDRAWER .if VT100 .nf ^+TOPDRAWER\+ ^-TOPDRAWER\- .f .endif vt100 This is a program designed to produce graphs. It has limited calculation ability, so your data must be ready to plot before you use this program. .x Command> .qb introduction TOPDRAWER is fairly easy to use if you confine yourself to simple plots. First invoke Topdrawer by typing: .i5;_$ TOPDRAWER .br;You are then prompted: .i5;TD: You first enter your data as a set of X,Y,DX,DY values. The DX,DY may be omitted if no error bars are needed. Each data point is specified on a separate line. Then the data may be plotted as a set of points with error bars (if DX,DY are not zero) by typing the command: .i5;TD:PLOT. .s If you wish to produce a histogram use the command: .i5;TD:HISTOGRAM. .br;On the other hand if you wish to plot a smooth curve type: .i5;TD:JOIN .br;For series of straight lines connecting the points: .i5;TD:JOIN 1 (1 segment per interval) .br;To put a title at the top: .i5;TD:TITLE TOP 'This is my title' .br;To put a title at the bottom: .i5;TD:TITLE BOTTOM 'This is the X axis' .br;To put a title on the left: .i5;TD:TITLE LEFT 'This is the Y axis' .s If you are done, you then type: .i5;TD:EXIT .s Now you liked the plot, but you wish to change a few things. The commands you typed are in file TD.TDJ. You may edit this file to correct any mistakes you made. You also should rename it: .i5;_$ RENAME TD.TDJ MYPLOT.TOP .br;and invoke TOPDRAWER again. Now instead of typing all the commands in, just type: .i5;_$ SET FILE IN 'MYPLOT' .br;Topdrawer will re-execute the commands in the file. Now you wish to get the plots out on the VERSATEC printer plotter so you type: .i5;TD:SET DEVICE VERSATEC .br;Then replot the data by typing: .i5;TD:SET FILE IN 'MYPLOT' .br;Finally type: .i5;TD:EXIT .s Now the plot is printed on the Versatec by: .i5;_$ PRINT UGDEVICE.DAT .s More plots may be added to the first plot .x HISTOGRAM .x JOIN .x PLOT by entering more data, and then either PLOT, HISTOGRAM, or JOIN. Each command may be modified by extra commands to make the plot more pleasing. For example if you type: .i5;TD:HISTOGRAM DOTS .br;Then the histogram will be formed with dotted lines. This is useful to differentiate it from other previously plotted histograms. .qb operation The following command invokes TOPDRAWER: .i5;_$ TOPDRAWER .br;You are prompted with .i5;TD: .s You then start typing in commands to TOPDRAWER. If you wish to get the commands from a file you enter: .i5;TD:SET FILE INPUT filename .s If you start TOPDRAWER from a batch stream, the commands follow the _$#TOPDRAWER command. .qb devices Normally TD sets the output device according to the logical symbol PLOT__TERM or if it is not defined PLOT__DEVICE. If neither is defined the device is assumed to be a VERSATEC. This means that TD uses your terminal when in interactive mode, and the VERSATEC while in a batch stream. If PLOT_TERM is not properly defined you may need to set the device. While using an interactive device TOPDRAWER stops after each plot and prompts: .i5;PAUSE: .br; To continue hit the "Return" key, or type STOP to stop. .x Command>STOP .s For interactive plots on a VT-100 with retrograpics you should: .i5;TD:SET DEVICE TEKTRONIX "RVT100" .x Devices>VT-100 Retrographics .s;or... for high resolutions retrographics .i5;TD:SET DEVICE TEKTRONIX "RVT100A" .s;or... a Visual 102 .if BONNER .i5;TD:SET DEVICE TEKTRONIX "VIS102" .x Devices>Visual 102 .s;or... a Selanar HiREZ 100XL .i5;TD:SET DEVICE TEKTRONIX "SEL100XL" .x Devices>Selanar HiREZ 100XL .s;or... a VT-240 .i5;TD:SET DEVICE TEKTRONIX "VT240" .x Devices>VT-240 .s;or... an ADM-3A with retrograpics .endif Bonner .i5;TD:SET DEVICE TEKTRONIX "RADM3A" .x Devices>ADM3A Retrographics .s;or... a VT-241 color terminal .i5;TD:SET DEVICE REGIS .x Devices>REGIS .x Devices>VT-240 .br;Depending on the terminal type The VT-240 may be used with either TEKTRONIX or REGIS. The REGIS driver is slower, but color graphics is supported. .s To use the Versatec printer/plotter: .i5;TD:SET DEVICE VERSATEC .if bonner .s;or... the LN-03 Laser printer .i5;TD:SET DEVICE SIXELS "LN03" .s;or... the LN-03 Laser printer high resolution mode .i5;TD:SET DEVICE SIXELS "LN03HI" .s;or... the LN-03 Laser printer low resolution mode .i5;TD:SET DEVICE SIXELS "LN03LO" .s;or... the LA-50 or LA-100 printer with 8.5" wide paper .i5;TD:SET DEVICE SIXELS "LA50" .s;or... LA-100 printer with 14" wide paper .i5;TD:SET DEVICE SIXELS "LA100" .s .endif bonner .s For the printers the plot will be put into file UGDEVICE.DAT and you must print the file on the correct printer. Additional parameters may be used to modify the plots. See:UGSYS DEVICE. .qb input Normally Topdrawer gets primary input from either a batch file, or your terminal (SYS_$INPUT). You may have secondary input files by using the command: .i5;TD:SET FILE INPUT filename .s;If you run Topdrawer interactively, but from an indirect command file, the input will be from the file the invoked Topdrawer. If you wish to have input from the terminal, you may assign TT: to SYS_$INPUT temporarily by: .i5;_$ ASSIGN /USER TT: SYS_$INPUT .i5;_$ TOPDRAWER .QB output .x output TD produces the following output: .list 0 .le;Plot - This may be on your terminal, LPA0:, another terminal, or a file on disk. The plot data format and file is modified by the command: .i5;SET DEVICE .br;Plot output for a device other than your terminal is normally in the file UGDEVICE.DAT. .le;Listing - This lists all TD commands you used in a session. This is normally TD.LIS, but the name may be changed by the command: .i5;SET FILE OUTPUT 'newfilename' .br;If you do not want a list file: .i5;SET FILE OUTPUT='NL:' .le;Journal - This file contains all commands entered interactively. It is normally file TD.TDJ, but the name may be changed or by the command: .i5;SET FILE JOURNAL 'newfilename' .le;Errors - This is a listing of all TD errors in FOR098.DAT. .els 0 .qb set__up .x Set up You may specify a setup file to initialize topdrawer. This is done by specifying the logical symbol TD_$INIT. TD_$INIT should point to a file .x TD_$INIT with topdrawer commands to be executed when TD first starts. The default file name is TDINIT.TOP. .s.c;example .i5;_$ ASSIGN TDHBOOK TD_$INIT .s The file TDHBOOK.TOP contains the commands: .i5;SET HIST HBOOK FILE="hbook.dat" .i5;TD:DEFINE KEY PF3 "SET HIST TITLE PREV;NEW;HIST"/TERMINATE .i5;TD:DEFINE KEY PF4 "SET HIST TITLE NEXT;NEW;HIST"/TERMINATE .s Now when you start Topdrawer your hbook histograms are already available, and keypad keys are defined to easily access them. .s You assign: .i5;_$ ASSIGN login TD_$INIT .br;The file TDINIT.TOP in your root default login directory is used as the Topdrawer initialization file. .qb data__format .x data format .x input Data is entered in a series of lines one point to a line. Each number may be separated by spaces, tabs, or commas. If you wish to enter several data points on a single line then they may be separated by semicolons ";". Data by default is entered in the following order. .i5;X Y DX DY SYMBOL .x Symbol .s Where: .br;DX is the error or 1/2 bin width for X+-DX. .br;DY is the error on Y+-DY. .x Error bars .br;SYMBOL is the symbol to plot. .x Symbol .s You may change the actual order that data is entered with the SET ORDER command. .s Data may be expressed in any legal FORTRAN format. For example .i5;1 = 1.0 = 1.0E0 .br;Symbols are 0O to 9O or any legal UGSYS duplex character set pair. .x Symbol If the symbol is omitted the datum is plotted by default as a point rather than a symbol. This may be modified by SET SYMBOL. .s Normally the data may not be longer than 80 columns. If you need to use longer lines for the data see the commands: SET#CARD and SET#FORMAT. .qb Coordinate__frame .x Coordinates .x Data frame .x Text frame There are 2 different sets of frames used in creating plots. They are DATA and TEXT frames. TEXT is always specified in inches. The character sizes and tic lengths are all specified in tenths of inches. The actual data is in the DATA frame, which is mapped to the physical (TEXT) frame at the time of plotting. The plots are all scaled automatically, unless you use the command SET LIMITS to specify the scale. .p The DATA frame is not mapped to the TEXT frame until a plotting command or a command which uses the data frame is used. Plotting commands are JOIN, HISTOGRAM, PLOT and so on. Commands which use the data frame is ARROW DATA, BOX DATA, TITLE DATA and so on. If you wish to have TOPDRAWER automatically set the data frame, you should supply the data ^&before\& any commands which reference the data frame. .s Several commands modify the data frame, once it has been defined: .i5;SET WINDOW .i5;SET LIMITS .i5;SET THREE .i5;SET SIZE .i5;SET SCALE .br These commands allow you to overlay different plots with different scales. Just reading in new data does not change the current data frame. .req "in:ugfont" .qc Setting__fonts The fonts are selected in 2 different ways for plot symbols and titles. .s For plot symbols you use a 2 character identifier for the symbol. For example 0O selects the cross as a plot symbol. See commands: .list 0 .le;SET SYMBOL .le;PLOT .le;SET ORDER .els 1 For titles the special symbols are selected with the CASE command. The case command specifies a string with a font selection character for each character in the title. For example you wish to write in Greek Alpha,Beta,Gamma followed by ABC. .i5;TITLE#"ABGABC" .i5;CASE##"GGG " .qb 3-Dimensional__plots .x 3-D plots Topdrawer will do a variety of 3-d plots. You can plot a series of separate graphs superimposed on a third axis, or you can enter an array of data to be plotted with hidden line removal. The array of data is entered by the READ MESH command. The mesh is then plotted by the HISTOGRAM ,JOIN or PLOT commands. .list 0 .le;HISTOGRAM#LEGO produces a block or "Lego" plot of mesh data. .le;JOIN produces a mesh surface. .le;SET THREE OFF;PLOT produces a scatter plot of mesh data. .els 0 .p Axes are not automatically added to 3-d graphs so you must use the command PLOT AXES. You may turn each axis on separately using the SET AXIS command and then PLOT AXES X,Y,Z to place each axis in a convenient location. .p The command SET THREE is used to specify the "viewpoint" of a 3-d plot. SET SCALE is also used to specify the range and type of scale to use along each of the X,Y,Z axes. .p 3-d plots may also be built from a series of 2-d plots. To do this you must provide z values and: .i5;SET#THREE#ON. .br;Then either JOIN, HISTOGRAM or PLOT is used to plot the data. Normally Z is the dependent variable, and X,Y are the independent variables. If this rule is violated, 3-d histograms will not be correctly plotted. Your data may be moved with the SWAP command if you need to get it into the correct variables. .qc Axes__example Assume you are plotting a mesh which extends x from 0 to 10, y from 0 to 20, z from 0 to 1. The axes will normally appear behind the plot which may be hard to read. You can move the axes to the front for X,Y and to the right for Z with the following commands. .i5;SET AXES ALL OFF X ON Y ON .I5;SET THREE ORIGIN 10 20 0 .I5;PLOT AXES .I5;TITLE X CENTER "X title" .I5;TITLE Y CENTER "Y title" .i5;SET AXES ALL OFF Z ON .I5;SET THREE ORIGIN 0 20 0 .I5;PLOT AXES .I5;TITLE Z CENTER "Z title" .qb COMMANDS .qc format__of__commands .x Command>format of commands Normally 1 command is placed on a single line If you wish to put more than 1 command per line, they must be separated by a semicolon ";" .s Optional syntax in a command is shown enclosed in square brackets "[]". If options are mutually exclusive they are separated by vertical bars "|" If 2 exclusive options are used, the rightmost one is used. Keywords within a command may appear in any order. Parameters must follow the keyword they modify. .x Separators Options in a command may be separated by tabs spaces _* _/ _, and _=. .s .x Abbreviations Commands and qualifiers may be abbreviated to the shortest number of unique characters or a minimum of 2 characters. For example the command BARGRAPH may be abbreviated to BARGR, BAR or even BA. SET FILE INPUT may be abbreviated to SE FI IN. All commands may be abbreviated to 3 characters. The minimum abbreviation for each command is underlined. .s Many commands have synonyms. For example AXES or AXIS, STOP or END, NEW FRAME or NEW PLOT or just NEW. .s Comments may be added to a command by enclosing them in parentheses "()". .x Comments .qc list__of__commands .list 0 .x Command .c;3-d plot info. is in parentheses () .le;ARROW - Draws an arrow. .le;BARGRAPH - Produces a bar graph. .le;BIN - This transforms the data to a frequency distribution (histogram). .le;BOX - Draws a box. .le;CIRCLE - Draws a circle or ELLIPSE. .le;DEFINE KEY - Defines keys on your keypad. .le;DIAMOND - Draws a diamond. .le;DX/DY/DZ - Enters a sequence of DX,DY, or DZ data values. .le;ERASE - Erases the screen no change in parameters. .le;ELLIPSE - Draws a circle or ELLIPSE. .le;FLUSH - Flush out all remaining data. .le;HISTOGRAM - Draws a histogram or ("Lego") plot. .le;HELP - Get help on TOPDRAWER. .le;JOIN - Joins the data points with a line or (Mesh) plot. .le;LIST - List the current data points. .le;NEW FRAME - Starts a completely new plot. .le;PAUSE - The program pauses. .le;PLOT - Plots data as points or symbols (Scatter plot). .le;PLOT AXES - Puts Axes on the plot. .le;READ - Reads in data points. .le;SHOW - Shows current options as set by the SET command. .le;SMOOTH - The data is smoothed. .le;SPAWN - Spawns our of TOPDRAWER. .le;STOP - Stops top drawer. .le;SWAP - Swaps data for 2 axes. .le;TITLE - Puts a title on the plot. .le;CASE - Controls the format of the title. .le;MORE - Adds more text under the current title. .le;SET - Sets options for plots (defaults). .le;X/Y/Z - Enters a sequence of X,Y, or Z values. .els 0 .qc ARROW .x Command>ARROW Draws an arrow from 1 point to another. .i5;^&AR\&ROW FROM xxx yyy [DATA] [LESS nnn] .i10;TO xxx yyy [DATA] [LESS nnn] .i10;[SIZE ddd] [FLARE|FLAIR fff] .p OPTIONS: .list 0 .le;DATA - specifies X,Y are in data coordinate frame. Normally they are in the TEXT coordinate frame. .le;LESS - Shortens the arrow by nnn so it does not touch x,y. .le;SIZE - length of arrow head in tenths of an inch. .le;FLARE - is ratio of the base to the height of the arrow head (fatness). .els .qc BARGRAPH .x Command>BARGRAPH Produces a simple bar graph. Bars are centered on the x values with heights given by Y. Half widths are determined by DX and DY is not used. .s .i5;^&BA\&RGRAPH [POINTS n1 [TO] n2] .i10;[^&SO\&LID|^&DO\&TS|^&DA\&SHES|^&DAA\&SHES|^&DOTD\&ASH|^&PA\&TTERNED|^&FU\&NNY] .x SOLID .x DOTS .x DASHES .x DAASHES .x DOTDASH .x PATTERNED .x FUNNY .p If the points are not specified all data points are used. The line texture is determined by the options specified or by the default. See: SET TEXTURE .qc BIN .x Command>BIN .i5;^&BI\&N|^&FR\&EQUENCY [BINS|N =n] .i5;[FROM|MIN xmin] .i5;[TO|MAX xmax] .i5;[BY|XSTEP|WIDTH|BINWIDTH dx] .x Frequency distibution .br This transforms the data to a frequency distribution (histogram) For each X entered, the corresponding Y is added to a bin in the histogram. The result is an evenly spaced series of X values with the corresponding distribution in Y and the standard deviation of each Y in DY. The symbol for each bin is set to the default. For this to work storage must include at least X and Y. You may find that the resulting data is not in the correct storage locations especially if a 3-d plot is to be produced. You may change locations with the SWAP command. .list 0 .le;BINS - Sets the number of bins in the histogram. .le;FROM - Sets the lowest bin value (low edge) .le;TO - Sets the highest bin value. .le;BY - Sets the bin width. If FROM,TO and NBINS are specified BY is not necessary. .els 0 .qd;Example .br;Say you wish to find the frequency distribution of a set of student grades in 5 point steps. The following will do the job: .i5;SET ORDER X .i10;(Enter grades) .i5;Grade1; Grade2; Grade3..... .i5;Graden;....... .i5;Y=1 (This sets all grades to equal weight) .i5;BIN BY 5 (now do the binning) .i5;HISTOGRAM .qc BOX .x Command>BOX Draws a box centered on the x,y with the sides parallel to the axes. .s.i5;^&BO\&X xxx yyy [DATA] [SIZE dx [dy]] .s.list 0 .le;xxx yyy specify the center of the box. .le;DX - specifies the width +-DX of the box. The total width is 2*DX. If omitted the width is the default see:SET BOX SIZE. .le;DY - specifies the height +-DY of the box. If omitted the height=DX. .le;DATA - specifies X,Y are in data coordinate frame. Normally they are in the TEXT coordinate frame. .els 0 .qc CASE See: TITLE .qc CIRCLE .x Command>CIRCLE Draws a circle or ellipse. See: ELLIPSE. .qc DEFINE .x Command>DEFINE KEY .x Key-pad This defines a key on your keypad so you can abbreviate a command to a single keystroke. The syntax is similar to the VMS DEFINE/KEY command. Since the syntax is VMS the string ^&^*must\*\& be enclosed in quotes (") and not in apostrophes ('). .i5;^&DE\&FINE KEY keyname "string" options .s For more information see: DEFINE/KEY in the ^&VAX/VMS DCL Dictionary\&. .qd options In general the only options you will frequently use are: /TERMINATE, /NOECHO, and possibly /IF__STATE. .list 0 .le;/[NO]TERMINATE - When the key is pressed the line is also terminated. (Default:/NOTERMINATE) .le;/[NO]ECHO - The command is [not] echoed. (Default:/ECHO) .le;/[NO]IF__STATE=gold - The definition is for this key prefaced by gold key (PF1). (Default:/NOIF__STATE) .le;/[NO]LOCK__STATE - The state is defined till NOLOCK. (Default:NOLOCK__STATE) .le;/[NO]SET__STATE=name (Default:/NOSET__STATE) .els 0 .qd keyname .br;The PF2 key is already defined as the HELP key. .br;The PF1 key is the gold key. .s.c;Vt-100 keypad .i5;PF1,PF2,PF3,PF4 .i5;PERIOD,COMMA,MINUS,ENTER .i5;KP0,KP1...,KP9 .c;Vt-2xx keys .i10;Upper row keys: .i5;F6,...F20 .i10;Named keys: .i5;E1####E2####E3####E4####E5####E6 .i5;Find##Ins.##Rem.##Sel###Prev.#Nex. .i5;HELP,DO .qd Example The PF1 and PF2 keys are already defined: .i5;TD:DEFINE KEY PF1 " " /SET__STATE=gold .i5;TD:DEFINE KEY PF2 "HELP "/TERMINATE .s.c;examples .i5;TD:DEFINE KEY PF3 "SET HIST PREV; NEW;HIST" /TERMINATE .i5;TD:DEFINE KEY PF4 "SET HIST NEXT; NEW;HIST" /TERMINATE .br; This sets up 2 keys so that you can step through a list of histograms. .s.i5;TD:DEFINE KEY MINUS "SET HIST ID=" .br;This sets up key to give the command. When the minus key on the keypad is pressed the command is entered, and you enter the number followed by the "RETURN" key. .s.i5;TD:DEFINE KEY KP7 "HISTOGRAM"/TERMINATE .br;This sets up the 7 key on the keypad to histogram. .s.i5;TD:DEFINE KEY COMMA "SET FILE INPUT 'myfile'"/term .br;This sets up the comma (,) key on the keypad to get commands from the file MYFILE.TOP. .s.i5;TD DEFINE KEY PF4 "SET THREE ON"/term .i5;TD DEFINE KEY PF4 "SET THREE OFF"/term/if_state=gold .br;This sets up PF4 as a key to turn THREE ON or OFF. To turn on three press PF4. To turn THREE OFF press PF1 PF4. .qc DIAMOND .x Command>DIAMOND Draws a diamond. .s.i5;^&DI\&AMOND xxx yyy [DATA] [SIZE dx [dy]] .s.list 0 .le;xxx yyy specify the center of the diamond. .le;DX - specifies the width +-DX. The total width is 2*DX. If omitted the width is the default see:SET DIAMOND SIZE. .le;DY - specifies the height +-DY. If omitted the height=DX. .le;DATA - specifies X,Y are in data coordinate frame. Normally they are in the TEXT coordinate frame. .els 0 .qc DX See: X .qc DY See: X .qc DZ See: X .qc ELLIPSE .x Command>ELLIPSE Draws a circle or ellipse. .s.i5;^&EL\&LIPSE xxx yyy [DATA] [SIZE dx [dy]] .s.list 0 .le;xxx yyy specify the center of the ellipse. .le;DX - specifies the width +-DX. The total width is 2*DX. If omitted the width is the default see:SET ELLIPSE SIZE. .le;DY - specifies the height +-DY. If omitted the height=DX. .le;DATA - specifies X,Y are in data coordinate frame. Normally they are in the TEXT coordinate frame. .els 0 .qc ERASE .x Command>ERASE .i5;^&ER\&ASE This erases the screen without resetting the buffers or the default values. This is useful if you wish to view several different things with the same parameters. .note ^*WARNING\* After ERASE the current scale settings are retained, and subsequent plots will not automatically have axes or scales. In general this command should not be used instead of NEW#PLOT. .end note .qc FLUSH .x Command>FLUSH .i5;^&FL\&USH This flushes any information in the buffers. If you are plotting on an interactive device, from the terminal you can do the same thing by hitting "return". .qc HISTOGRAM .x Command>HISTOGRAM Draws a histogram from the specified data points. Bin edges are halfway between the ends of adjacent error bars (DX), or halfway between points if no error bars. .x Error bars .s .i5;^&HI\&STOGRAM [POINTS n1 [TO] n2] .i10;[^&SO\&LID|^&DO\&TS|^&DA\&SHES|^&DAA\&SHES|^&DOTD\&ASH|^&PA\&TTERNED|^&FU\&NNY] .i10;[X] [Y] [Z] [LEGO|BLOCK] .i10;[NOHIDDEN|HIDDEN] .i10;[NOFRAME|FRAME] .i10;[NODEPTH|DEPTH] .i10;[XY|YZ|ZX] [CROSS|RANDOM] .i10;[SLICES [X|Y|Z] [FROM] v1 [[TO] v2]] [CYCLE] .x Slice .i15;or... .i10;[SLICE X|Y|Z=v1] .x FUNNY .x SOLID .x DOTS .x DASHES .x DAASHES .x DOTDASH .x PATTERNED .qd POINTS This selects the points to plot. If not selected all points are plotted. This is ignored for mesh data. .qd SOLID This determines the texture of the line. See: SET TEXTURE .qd X .x Lego plots .x Block plots .x 3-D plots This produces a "solid" plot of the mesh data. The limits are set from the beginning of the first X,Y data point to the last. This may not be satisfactory if the bins at the edges are large. .s The options X,Y,Z modify the format of the plot. .list 0 .le;X - Draws all bin edges in the X direction. .le;Y - Draws all bin edges in the Y direction. .le;Z - Draws all bin edges in the Z direction. .le;LEGO or BLOCK - Draws all bin edges. It is equivalent to X#Y#Z. .x Lego plot .x Block plot This produces a "Lego" plot. .le;HIDDEN|NOHIDDEN - controls whether hidden lines are drawn. (Default:NOHIDDEN) .le;DEPTH|NODEPTH - NODEPTH plots the mesh as a series of disconnected histograms, rather than as a solid. Each histogram is drawn as a flat 2 dimensional hist, but one after the other. .els 1 Necessary lines to delineate edges of different planes are included when a plot with depth is requested. By omitting some lines the plot is much faster. You can produce a drawing with hidden lines as dotted lines by doing the histogram twice: .i5;HISTOGRAM .i5;HISTOGRAM HIDDEN DOTTED .s.c;^*^&NOTE\&\* Some lines may be missing from the plot, because of the viewpoint. If this happens you may need to: .i5;SET THREE DIST 8000 SCRD 2000 .qd XY XY|YZ|ZX determine which faces are "shaded". The shading is done by either drawing parallel lines, a cross from corner to corner or random dot patterns. The default is parallel lines. .qd CROSS CROSS|RANDOM produce either a diagonal cross or a set of random dots as shading patterns on the selected faces. DX controls the number of dots/face. DX is the total number of dots to pruduce. .qd DX DX|DY|DZ are the separation between parallel lines used to shade the faces. If zero parallel lines are not drawn. .s.c;Example You wish to shade face YZ,ZX with lines parallel to the Y axis separated by 0.1 units. Essentially this draws lines at even multiples of 0.1 units. This may be used in a similar fashion to grid lines on 1-d plots. .i5;HISTOGRAM YZ ZX DX=0.1 .br;Note: you specify DX the distance along the X axis. Since DY is 0, no lines parallel to the X axis are drawn. When selecting RANDOM shading DX specifies the number of dots/face. .qd SLICES .x Slice .i10;[SLICES [X|Y|Z] [FROM] v1 [[TO] v2]] [CYCLE] .i15;or... .i10;[SLICE X|Y|Z=v1] [CYCLE] .s;This plots a histogram sliced from mesh data. This command has no effect for normal data. When THREE is off this picks a range of X,Y,or Z to plot. If v2 is omitted then v2=v1. If a range is selected then all slices within the range are plotted. You only need select X|Y|Z the first time you slice after a NEW FRAME command. .s If THREE is ON then the histogram is sliced at v1 and v2 is ignored. The front part of the histogram is sliced away to reveal internal detail. The actual plot depends on the viewing angle. .s If THREE is OFF then each line/column of the histogram between v1 and v2 is plotted as a separate histogram. When plotting more than 1 slice, CYCLE causes the line texture to vary from one slice to the next. The order of cycling is SOLID, DAASHES, DOTS, DASHES, DOTDASH. If both v2 and v1 are omitted, then all slices are plotted. .s If you wish to add together a series of slices and plot them as a single histogram see the command: PROJECT. .qe example .s.c;2-d Example You read in a mesh of data x,y vs Z. X ranges from 0.0 to 1.0 in steps of 0.1 and Y from 100 to 200 in steps of 1. You wish to view a histogram of x vs Z for Y=140: .i5;SET THREE OFF .i5;HISTOGRAM SLICE Y=140 .s;You now wish to view y vs z for values Y=.2 to .5: .i5;NEW PLOT .i5;SET THREE OFF .i5;HISTOGRAM SLICE X FROM .2 to 0.5 .i5;(This plots 4 histograms) .s;Now you wish to view all slices along the X axis: .i5;NEW PLOT .i5;SET THREE OFF .i5;HISTOGRAM SLICES Y .i5;(This plots 100 histograms!) .s.c;3-d Example You enter mesh data in steps of 1 for Y=1 to 10, X=0 to 20. .i5;HIST SLICE X=10. .br;You are looking at X=10 to 0 from front to back. .i5;SET THREE THETA=-30 .i5;HIST SLICE X=10. .br;You are looking at X=10 to 20. from front to back. .qd Shading__example Shading is produced by the qualifiers: .i5;XY YZ ZX DX DY DZ CROSS RANDOM .br;If you wish to shade the 3 faces differently, you must histogram 3 times with each pattern you wish. For example you wish parallel lines on the YZ face, dots on the ZX face, and crosses on the XY face: .i5;HISTOGRAM XY CROSS .i5;HISTOGRAM YZ DX=0.1 DY=0.1 .i5;HISTOGRAM ZX RANDOM DX=1000 .qd FRAME This qualifier specifies that the edge of the 3-d plot is to be always drawn. (Default:FRAME) .qd DEPTH This specifies that 3-d plots are to be drawn as a series of disconnected histograms, rather than as a "solid" (Default:DEPTH) .qd 3-d__plot A 3-d histogram can be either a plot of mesh data or a plot of "normal" x,y,z data. Mesh data is normally plotted as a "solid". XYZ data is plotted as a histogram of X vs Z in the plane determined by Y. For all 3-d histograms Z must be the dependent variable, and X,Y are independent. Repeated XYZ plots may be used to build up a series of histograms. .qd variables Normally for 1-d plots X is the independent variable and Y is the dependent one. If STORAGE is set without Y then Z is the dependent variable. .s Normally for 2-d plots X,Y are the independent variables and Z is the dependent variable. .s The bin width is half way between the X or X,Y values if DX,DY are 0. If DX,DY are specified then they determine the bin width. .qd limits The limits of the data for histograms is normally set so that the lowerlimit of the dependent axis with a linear scale is 0.0, unless some data points are less than zero. If you wish a different value you can: .i5;SET#LIMIT#YMIN=nnn.nn. .i10;or for 3-d.... .i5;SET#LIMIT#ZMIN=nnn.nn. .note ^*WARNING\* If this command is issued in between 2 plots overlaying each other, they will not have the same scales. .end note .qc HELP .x Command>HELP This gives you help on TOPDRAWER commands. .i5;^&HE\&LP topic subtopic sub-subtopic... .s For example to get the list of set commands: .i5;HELP COMMAND SET list .br;To get help on the JOIN command. .i5;HELP COMMAND JOIN .qc JOIN .x Command>JOIN Joins the data points with a line. .i5;^&JO\&IN [level] [{SPLINE|GENERAL}] .i10;[POINTS n1 [TO] n2] [TEXT] .i10;[^&SO\&LID|^&DO\&TS|^&DA\&SHES|^&DAA\&SHES|^&DOTD\&ASH|^&PA\&TTERNED|^&FU\&NNY] .i10;[X|Y|Z] .i10;[SLICES [X|Y|Z] [FROM] v1 [[TO] v2]] [CYCLE] .x Slice .i15;or... .i10;[SLICE X|Y|Z=v1] .x SOLID .x DOTS .x DASHES .x DAASHES .x DOTDASH .x PATTERNED .x FUNNY .x SPLINE .s;OPTIONS: .list 0 .le;level - This is the number of line segments/point to use in joining the points. If omitted TOPDRAWER picks a suitable value .le;SPLINE - uses a natural cubic spline to fit the points. Either x or y must be strictly increasing. .le;GENERAL - curve is calculated using an algorithm which allows multiple-valued functions and repeated points. (Default:GENERAL) .le;TEXT - Use the TEXT coordinate frame instead of the DATA frame. .le;POINTS - Specify which points are used. If not specified all data points are used. .le;SOLID...FUNNY specify the line texture. FUNNY is a dot at the ends of each line segment. See: SET TEXTURE .le;X|Y|Z - This specifies that mesh data is to be joined only in X,Y, or Z. The default is to join in both. .le SLICES .x Slice This plots data sliced from a mesh. For more information see HISTOGRAM SLICE. .le;When plotting a series of slices, CYCLE causes the line texture to vary from one slice to the next. The order of cycling is SOLID, DAASHES, DOTS, DASHES, DOTDASH. .els 0 .qd 3-d__plot .x 3-D plots This produces a mesh plot of the data. Essentially the data points are joined in X,Y. .qc LIST__POINTS This lists the current data points in the list file. .i5;^&LI\&ST [POINTS [FROM:MIN] n1 [TO:MAX] n2] .s n1,n2 refer to the points in the order in which they were entered. This allows a partial listing of the data. .qc MORE .x Command>MORE Adds more text after the last title with the same parameters as the last title. It may also be modified by a matching CASE command, see TITLE. .i5;^&MO\&RE .qc NEW__FRAME .x Command>NEW PLOT .x Command>NEW FRAME Starts a new picture. Untreated points are PLOTTED before going on. The old data points are retained until new ones are read. Parameters are returned to the default values. If the plot device is interactive and you are executing commands inside a file the program prompts: .i5;PAUSE: .br;You hit the "Return" key to start the next plot. If instead of "return" you type in STOP, Topdrawer will stop executing the input file and return to command level. You can also type EXIT, QUIT, HALT or END instead of STOP. .x Command>EXIT .x Command>QUIT .x Command>HALT .x Command>END .x Command>STOP .s.i5;^&NE\&W [FRAME|PLOT] [[ALIAS=] 'alias'] .s Each picture is given the name PICT001, PICT002 etc., but they may be given an alias name. .qc PAUSE .i5;^&PA\&USE .s This causes TOPDRAWER to PAUSE. You may continue with the command: .i5;_$ CONTINUE .s This command is not needed for an interactive device. .qc PLOT .x Command>PLOT .x Error bars Plots the data as a series of points or symbols .x Symbol .s.i5;^&PL\&OT [POINTS n1 [TO] n2] .i10;[DOTS=n] .i10;[SLICES [X|Y|Z] [FROM] v1 [[TO] v2]] .x Slice .i15;or... .i10;[SLICE X|Y|Z=v1] .s The data points are plotted as a series of symbols with error bars, if given. .list 0 .x Scatter plot .le;DOTS=n - Sets the maximum number of dots per bin for a scatter plot (3-d) .s If DOTS is not specified The number of dots in a bin is the value in the bin-Zmin. Zmin for a scatter plot is zero unless set by a SET#LIMITS command. If the maximum bin is greater than 10 then the number of dots is set to 10 per bin. If the maximum bin is less than 1.0 then the number of dots is set to 5. .s If the contents of the bin ranges from 0 to 100 and DOTS=10, Then each dot represents the value 10. Any bin with values less than 10 will have no dots plotted. .le;SLICES - This plots either a single slice or several slices from mesh data. See HISTOGRAM for more details. .els 0 .qd 3-d .x Scatter plot Mesh data produces a scatter plot if THREE is off. Regular data produces a plot on a flat surface viewed in perspective. The scatter plot is truncated with zero dots for data equal to ZMIN, and the maximum number of dots at ZMAX. By setting ZMIN,ZMAX and DOTS you can control the look of the scatter plot. .s The default for PLOT is THREE off. .qd AXES [AT x y z] Puts Axes on the plot, but does not plot points. This command is not usually necessary as axes are added to the picture when the first PLOT, HIST, or JOIN command is executed. The limits of the axes are determined either from the existing data or from the the SET LIMITS command. The format of the axes is determined by the SET AXES command. The origin of the axes may be specified after the option AT. .p This command is mainly useful for special graphs where 2 sets of axes with different scales are needed. This is also used to plot axes on a 3 dimensional plot where x y z specify the origin of the axes. .p The origin may also be specified by the command SET#THREE. .qc PROJECT .x Projections .x Command>PROJECT This projects a mesh onto either the X or Y axis. .i5;^&PR\&OJECT .i10;[X|Y|Z] [FROM] v1 [[TO] v2]] .s This projects a range of values in the selected range. If v1 and V2 are omitted all values are projected parallel to the specified axis X,Y, or Z. If v1 is specified, but v2 is omitted, v2=v1. You need not use this command if you wish to histogram only a single slice. The SLICE modifier on the HISTOGRAM, or JOIN commands may be used. .x Slice .s.c;Example You read in a mesh of X,Y vs Z. .i5;PROJECT Y 5 to 10 .br;Projects the Y slices corresponding to Y=5 to 10 onto the X axis, and 2-d array of values is stored. The new array of values is the sum of all Z values corresponding to the range of Y values. The mesh data is destroyed. .qc READ .i5;READ POINTS - Reads in data to be plotted .i5;READ MESH - Reads in 3-d data to be plotted .qd POINTS .i5;^&RE\&AD ^&PO\&INTS .s.x Command>READ>POINTS This reads in data to be plotted. Once data is read, it is retained until it has been used to generate a plot. It is then discarded when new data is read. Normally you plot the data immediately after reading it. When you start a new plot, the data last plotted is still available for replotting. It is not discarded until new data is read. .s This reads in a series of points to be plotted. This command is not necessary, since TOPDRAWER assumes that a number not preceded by a command is automatically a point. .qd MESH .x Command>READ>MESH .i5;^&RE\&AD ^&ME\&SH [BINS] [FOR] {X|Y|Z}[=] N1,...,Nn [nn+1 END] .i5;[FOR] {X|Y|Z}[=]nn {X|Y|Z}[=] N1,...,Nn .i5;[FOR] {X|Y|Z}[=]nn {X|Y|Z}[=] N1,...,Nn .i5;_................ .i5;[[FOR] {X|Y|Z}[=]nn END] .s You must specify the points as an array of X,Y,Z values. If the attribute BINS is selected you specify the edge of the bins rather than the center of the bins and the optional keyword END marks the end of the data. .qe Bin__spacing The points/bins must be monotonically spaced along the axes for good results. The maximum number of points is limited by the storage which is is adequate for a 140 by 140 plot. .s If a histogram has unequal size bins, the last bin edge should be specified with the keyword END. If this is not done, the bins may not be properly represented. If bin edges are not specified, The first 2 bins are assumed to have the same size, and the last two bins are likewise assumed to be equal in size. Mesh points are assumed to be centered within each bin. .qe point__example To Read in an array of 3 dimensional data .i5;READ MESH .i10;#####Y##y1#y2#....#yn .i10;X#x1#Z#z11#z21#...#zn1 .i10;X#x2#Z#z12#z22#...#zn2 .i10;_............... .i10;X#xm#Z#z1m#z2m#...#znm .s.br;or... .i5;READ MESH .i10;FOR######X=#x1#x2#....#xn .i10;FOR Y=y1#Z=z11#z21#...#zn1 .i10;FOR Y=y2#Z=z12#z22#...#zn2 .i10;_............... .i10;FOR Y=ym#Z=z1m#z2m#...#znm .qe bin__example To Read in a 4 by 4 array of 3 dimensional data .i5;READ MESH BINS .i10;FOR###Y=0.0 1.0 2.0 3.0 .i10;X=0.0 Z= 0 0 0 0 .i10;X=1.0 Z= 0 1 2 3 .i10;X=2.0 Z= 1 2 3 4 .i10;X=3.0 Z= 2 3 4 5 .s.br;Is the same as: .i5;READ MESH .i10;FOR###Y=0.5 1.5 2.5 3.5 .i10;X=0.5 Z= 0 0 0 0 .i10;X=1.5 Z= 0 1 2 3 .i10;X=2.5 Z= 1 2 3 4 .i10;X=3.5 Z= 2 3 4 5 .br;or...... .i5;READ MESH BINS .i10;FOR###Y=0.0 1.0 2.0 3.0 4.0 END .i10;X=0.0 Z= 0 0 0 0 .i10;X=1.0 Z= 0 1 2 3 .i10;X=2.0 Z= 1 2 3 4 .i10;X=3.0 Z= 2 3 4 5 .i10;X=4.0 END .qc SET .x Command>SET Sets options for plots. These options usually revert the the default when a new plot is started. .qd list__of__options .list 0 .le;ARROW - Sets default arrow format .le;AXIS - Sets default axis .le;BAR - Sets ends of error bars .le;BOX - Default box size .le;CARD - Maximum length of input lines .le;CIRCLE - Same as SET ELLIPSE .le;COLOR - Sets default color or pen number .le;DEVICE - Chooses I/O device .le;DIAMOND - Sets default diamond size .le;ELLIPSE - Sets default ellipse size .le;ERASE - Selects deferred or immediate screen erasure .le;ERRORS - Changes the output of errors .le;FILE - Sets Fortran I/O logical units numbers .le;FLUSH - Sets automatic flush mode. .le;FONT - Chooses UGSYS character set .le;FORMAT - Format for input lines (160A1) .le;GRID - Specifies grid marks overlay plot .le;INTENSITY - Sets default intensity (line width) .le;LABELS - Controls numeric labels on axes .le;LIMITS - Sets limits for plot axis .le;MODE - Set misc. flags .le;ORDER - Determines interpretation of input data .le;OUTLINE - Controls outline around plot .le;PAUSE - Controls pause at end of plot .le;PATTERN - Controls the pattern for PATTERNED lines .le;PEN - Selects the pen or color to use in plotting. .le;PROMPT - Sets the prompt string. .le;SCALE - Controls scale (log/linear) and units. .le;SIZE - Defines size of screen or paper .le;STORAGE - Defines what is kept in storage .le;SYMBOL - Sets default symbol to plot .le;TEXTURE - Sets default line style (DOTTED,SOLID...) .le;THREE - Sets parameters for 3-dimensional plots .le;TICKS - Controls tick marks on axes .le;TITLE - Sets size of title .le;WIDTH - Sets the line width or intensity .le;WINDOW - Defines the plotting area (labels may be outside area) .els 0 .qd AREA .i5;See: SET WINDOW .qd ARROW .x Command>SET>ARROW .i5;^&SE\&T ^&ARR\&OW [SIZE ddd] [FLARE|FLAIR fff] [PERMANENT] .x PERMANENT .list 0 .le;SIZE - length of arrow head in tenths of an inch. (Default:2) .le;FLARE - is ratio of the base to the height of the arrow head (fatness). (Default:0.2) .le;PERMANENT - Makes the current setting the new default. .els 0 .s;Any parameter not specified is set the the default. .qd AXIS .x Command>SET>AXES .x Command>SET>AXIS Controls the presence or absence of each axes. .i5;^&SE\&T ^&AX\&IS|AXES .I10;[^&AL\&L|^&TO\&P|^&BO\&TTOM|^&RI\&GHT|^&LE\&FT|^&X\&|^&Y\&|^&Z\&] [^&ON\&|^&OF\&F] .i10;[PERMANENT] .x PERMANENT .S Normally AXES are drawn at the first HIST, JOIN, BARGRAPH, PLOT, or PLOT AXES command. .list 0 .le;ALL - enables axes for top, bottom, right and left. .le;TOP - enables an axis for the TOP of plot .le;BOTTOM - selects the axis for the bottom of the plot. .le;RIGHT - selects the axis for the right hand side .le;LEFT - selects the axis for the left hand side. .le;X,Y,Z - selects the axis to plot. For 2 dimensional plot X turns on both top and bottom, Y turns on both right and left. .le;ON - allows drawing all three .le;OFF - prevents drawing outline, label and ticks. .le;PERMANENT - Makes the current settings permanent from plot to plot. .els 0 This acts on the current plot only a new SET AXES is required for each plot. The command must be followed by either a HIST, JOIN, BARGRAPH or PLOT command to be effective. To select outline, labels, or ticks see the commands: SET OUTLINE, SET LABELS, SET TICKS. (Default:ON) .qe Example .s.i5;SET AXES ALL ON TOP OFF RIGHT OFF .br;This produces axes only on the left and bottom. .s.i5;SET AXES X ON Y ON Z OFF .br;This produces X,Y axes, but no Z axes on a 3 dimensional plot. .qd BAR .x Command>SET>BAR .x Error bars This sets the size of the lines at the ends of error bars. .i5;^&SE\&T ^&BA\&R [SIZE] [nnn] [PERMANENT] .x PERMANENT .s nnn=size in inches (Default:0.1) .s PERMANENT - Makes the current setting the new default. .s;If the SIZE is not specified it reverts to the default value. .qd BOX .x Command>SET>BOX This sets the default size for boxes. .i5;^&SE\&T ^&BO\&X [SIZE dx [dy]] [PERMANENT] .x PERMANENT .s;PERMANENT - Makes the current setting the new default. .br;(Default:1.0) .s;If dx is omitted it is set to the default. If dy is omitted it is the same as dx. .qd CARD .x Command>SET>INPUT .x Command>SET>CARD .x input This sets the number of columns per input line. .i5;^&SE\&T ^&CA\&RD|^&INP\&UT [LENGTH] [length] .s All data past the length is ignored (Default:80) The length must be in the range 20 to 160. See also SET FORMAT. This parameter remains the same when a new plot is started. .s You should be careful when using this command. If you extend the input line before extending the format, TOPDRAWER may expect will expect multiple input lines per command. .s If length is omitted it is set to the default value. .qd CIRCLE .x Command>SET>CIRCLE This sets the default size for circles. .i5;^&SE\&T ^&CI\&RCLE [SIZE dx [dy]] [PERMANENT] .x PERMANENT .s This is same as SET ELLIPSE .s;PERMANENT - Makes the current setting the new default. .br;(Default:1.0) .s;If dx is omitted it is set to the default. If dy is omitted it is the same as dx. .qd COLOR .x Command>SET>COLOR .x Color .x Pen number .x ^&CO\&LOR This sets the color of the display or the pen number. This is effective only for the current plot, or until another SET COLOR or SET PEN command. .if Bonner .i5;^&SE\&T ^&CO\&LOR WHITE|RED|GREEN|BLUE|YELLOW|MAGENTA|CYAN .s;(Default:WHITE) .else * .i5;^&SE\&T ^&CO\&LOR BLACK|RED|BLUE .s;(Default:BLACK) .endif bonner .s See: SET PEN .s;If no color is specified it is set to the default. .qd DEVICE .x Command>SET>DEVICE This selects the unified graphics device and sets options back to default values. This is equivalent to starting a new plot on another device. .i5;^&SE\&T ^&DE\&VICE [device_name] ["string"] [SIDEWAYS] .i10;[DDNAME=filename] .i10;[INTERACTIVE|SEQUENTIAL|PDS] .ifnot bonner .i10;[FANFOLD|CONTINUOUS] .i10;[INTERNAL|EXTERNAL] .i10;[IDENT=aaaa] .i10;[NUMBER=nnnn] .else bonner .s;(Default:INTERACTIVE,your__terminal) .endif bonner .qe device__name .x output This selects the device name. It is modified by the string. The following device names are valid: .s .iifnot bonner;CALCOMP TEKTRONIX REGIS SIXELS VERSATEC .ifnot Bonner .qe CALCOMP .le;SMALL CALCOMP - 10inch Calcomp .le;LARGE CALCOMP .endif Bonner .qe REGIS This is for interactive GIGI or VT-240 or VT-241 color monitor .x Devices>REGIS .x Devices>VT-240 .x Devices>Digital GIGI (note:VT-241 can only reproduce the colors RED,GREEN,BLUE). The TEKTRONIX driver is faster on a VT-240 than the REGIS driver. .qe TEKTRONIX Tektronix 4010 compatible terminal .x Devices>Tektronix 4010 .list 0 Options: .le;"RADM3A" - For ADM-3A+Retrographics terminal .x Devices>ADM3A Retrographics .le;"RVT100" - A VT-100+Retrographics terminal .le;"RVT100A" - High resolution Retrographics (Green screen). .x Devices>VT-100 Retrographics .if Bonner .le;"VT240" - For a VT-240 terminal .x Devices>VT-240 .le;"VIS102" - For a Visual 102 with graphics. .x Devices>Visual 102 .le;"SEL100XL" - For a Selanar HiREZ 100XL .x Devices>Selanar HiREZ 100XL .endif Bonner .els 0 .qe VERSATEC Versatec 1200 printer/plotter .x Devices>Versatec .if not bonner .list 0 .le;FANFOLD|CONTINUOUS - Selects the type of paper used (Default:FANFOLD) .le;INTERNAL|EXTERNAL - Selects either internal rasterization or external. (Default:INTERNAL) .le;"LENGTH=fff,INCHES" - fff is the length of the paper in inches. This allows you to make long plots on roll paper, or plots that bleed across the page boundaries. You can also make a plot smaller using this parameter. .els .endif bonner .qe SIXELS This is for the LA-50, LA-100, VT-240, LN-03 and any other device that uses sixel graphics. To specify this device: .i5;SET DEVICE SIXELS "dev__type,string" .br;Where dev__type is LA50, LA100, VT240, LN03, LN03HI, LN03LO, or LN03MED. .qe string This is passed to UGOPEN. This selects options for the selected device. The options are separated by commas. For more information see:UGSYS. An example of using the string is: .i5;SET DEVICE SIXELS "LN03HI,NOCLEAR,NORESET,LENGTH=fff,INCHES" .s This selects output for the LN-03 with no imbedded formfeeds or reset commands. You might produce a plot in this form so you can add it to an existing text file. The result is a plot imbedded in the text. .s LENGTH=fff adjusts the page length where fff is the length of the paper in inches. Shortening the plot size is useful for imbedded plots. You may also lengthen the page length on the LA50 and LA100 printers. .s If the keyword INCHES is omitted the length is in centimeters. .qe INTERACTIVE This plots on your terminal. INTERACTIVE turns on both PAUSE and FLUSH. When this is selected TOPDRAWER stops after each plot and waits for you to hit the "Return" key. If you wish to stop you type STOP, EXIT, QUIT, HALT, or END. .x Command>STOP .x Command>EXIT .x Command>QUIT .x Command>HALT .x Command>END In addition data is flushed after each line of interactive input. .s SEQUENTIAL - Produces plots in an output file .s PDS - Produces the plots in an output file. .qe DDNAME DDNAME=filename - This selects the device and filename for output. This option only works for non-interactive or sequential devices. .qe IDENT IDENT=aaaa - This selects a 4 character identification to be added to a sequential output file before each plot. For TEKTRONIX and REGIS, if aaaa='NONE' then there is no identification for each plot. .qe NUMBER NUMBER=nnnn - This selects the sequence number for the first plot in the set. .qe SIDEWAYS SIDEWAYS - Rotates the plot by 90 degrees. .qe Example To get plots on your terminal a VT-100 with retrographics. .i5;SET DEVICE TEKTRONIX "RVT100" .s To get plots on another terminal (TTAn:) a VT-100 with retrographics. .i5;SET DEVICE TEKTRONIX "RVT100" DDNAME=TTAn: .s To get output on the Versatec: .i5;SET DEVICE VERSATEC .br;The actual output will be a file called UGDEVICE.DAT which must be printed on the Versatec. .s To get direct output to the Versatec: .i5;SET DEVICE VERSATEC DDNAME=LPA0:UGDEVICE.DAT .qd DIAMOND .x Command>SET>DIAMOND This sets the default size for diamonds. .i5;^&SE\&T ^&DI\&AMOND [SIZE dx [dy]] [PERMANENT] .x PERMANENT .s;PERMANENT - Makes the current setting the new default. .br;(Default:1.0) .s;If dx is omitted it is set to the default. If dy is omitted it is the same as dx. .qd ELLIPSE .x Command>SET>ELLIPSE This sets the default size for the major and semi-major ellipse sizes. If dy is omitted the ellipse becomes a circle. .i5;^&SE\&T ^&EL\&LIPSE [SIZE dx [dy]] [PERMANENT] .x PERMANENT .s;PERMANENT - Makes the current setting the new default. .br;(Default:1.0) .s;If dx is omitted it is set to the default. If dy is omitted it is the same as dx. .qd ERASE .i5;^&SE\&T ^&ERA\&SE {DEFERRED|IMMEDIATE} .s.list 0 .le;DEFERRED - After an ERASE of NEW PLOT command the screen is not erased until data is plotted. In other words the current plot remains on the screen until the new plot appears. .le;IMMEDIATE - The screen is erased immediately after an ERASE or NEW PLOT command. .els 0 .qd ERRORS .i5;^&SE\&T ^&ERR\&ORS {DEFERRED|IMMEDIATE|LIST} {WAIT|NOWAIT} .s.list 0 .le;DEFERRED - The error messages appear after the plot is finished. .le;IMMEDIATE - The error messages appear when the command is entered. .le;LIST - The error messages appear only in the listing file. .le;WAIT - When error messages are immediate, WAIT causes TOPDRAWER to wait after each message. .els 1 This option remains the same until changed by a SET ERRORS command. (Default:IMMEDIATE,NOWAIT) .qd FILE .x Command>SET>FILE .x input .x output This selects the file names for data input and the output listing. .i5;^&SE\&T ^&FI\&LE [INPUT|OUTPUT|JOURNAL] filename .s.list 0 .le;INPUT - Selects the input file. Once a file is selected, TOPDRAWER looks for all commands in that file. After the last command in the file, TOPDRAWER looks for more input in the current file. (Default:TOPDRAWER.TOP) .le;OUTPUT - Selects the printer output (Default:TD.LIS) .le;JOURNAL - Selects the journal file name (Default:TD.TDJ) The journal file contains any commands you type at the keyboard. There is no journal file when Topdrawer is run from a batch job. .le;filename - The file specification. The may include device and directory. .els 0 .s.c;^*Example\* .i5;TD:SET FILE INPUT TEST .br;Input will be taken from file TEST.TOP. .i5;TD:SET FILE INPUT myfile.dat .br;Input will be taken from file MYFILE.DAT. .s.i5;TD:SET FILE INPUT=TEST OUTPUT=TESTD .br;Input will be TEST.TOP the output will be TESTD.LIS. .s.i5;SET FILE INPUT 'SYS_$UGSYS:TDINTRO' .br;The input will be from SYS_$UGSYS: file TDINTRO.TOP .s.i5;SET FILE INPUT DRA0:[USER.SUBDIR]MY__PLOTS.PLT .br;The input will be from device DRA0:, directory [USER.SUBDIR], file MY__PLOTS.PLT .i5;TD:SET FILE JOURNAL NL: .br;This discards the journal output. .qd FLUSH .i5;^&FL\&USH [ON|OFF] This selects automatic flush of plot data. When automatic flushin of data is on plot data is displayed immediately after each interactive line of input. When OFF plot data is only displayed after a FLUSH command or when the plot buffer is full. Pause is normally on for interactive devices, and off for non interactive. .qd FONT .x Command>SET>FONT This selects which fonts are used in generating plots. .i5;^&SE\&T ^&FON\&T [BASIC|EXTENDED|DUPLEX] .list 0 .le;BASIC - 64 character uppercase font (not useful) .le;EXTENDED - Full font with Greek and lowercase (Default) .le;DUPLEX - Fancy font. This one may not look good on devices such as Tektronix 4010 with limited resolution. This also requires the most memory and time to generate. .els 1 This option remains in effect until changed by a SET FONT command. .qd FORMAT .x Command>SET>FORMAT Sets the format used by the Fortran READ statement. .i5;^&SE\&T ^&FOR\&MAT "format" .x input .s;This is useful if you wish to skip lines at the beginning of a line when you are using a list file as input to top drawer. You can also set up longer line widths. The format is limited to 16 characters. (Default:(160A1) The number of columns is also limited by SET CARD. This option remains the same until changed by a SET FORMAT command. .c;^*Example\* If you wish extra long lines you may: .i5;TD:SET FORMAT "(132A1)" .i5;TD:SET CARD 132 .br;Or if you wish to skip the first 10 columns: .i5;SET FORMAT "(10x,80A1)" .qd GRID .x Command>SET>GRID This causes a grid to overlay the plot when axes are drawn. The grid lines are lined up with the large tick marks. This acts on the current plot only a new SET GRID is required for each plot. The command must be followed by either a HIST, JOIN, BARGRAPH or PLOT command to be effective. This acts on the current plot only .i5;^&SE\&T ^&GR\&ID [ON|OFF|HORIZONTAL|VERTICAL] .i10;[SYMBOL [x]] [SIZE n] .i10;[PERMANENT] .x PERMANENT .x Symbol .s.list 0 .le;ON - causes both horizontal and vertical lines. .le;OFF - suppresses the lines. The symbol may still be plotted. (Default) .le;HORIZONTAL - causes horizontal lines only .le;VERTICAL - causes vertical lines only .le;SYMBOL - causes a symbol [x] to be plotted at intersection of vertical and horizontal lines. (Default: x=0O) .le;SIZE - sets the size of the grid symbols .le;PERMANENT - Sets the current grid options permanently for all NEW plots. .els 0 .qd HISTOGRAM .i5;^&SE\&T ^&HI\&STOGRAM .x HBOOK .x HANDYPAK .x RICE HISTOGRAMS .x Histograms .x Command>SET>HISTOGRAM .i10;[RICE|HBOOK|HANDYPAK] .i10;[ERROR] [CONFIRM] .i10;[FILE#'filename'] .i10;[NAME#'hist__name'] [IDENT#nnn] .i10;[NEXT|PREVIOUS] .i10;[PROCESS#'Process__name'] [PID='nnnn'] .i10;[TITLE] .qe qualifiers .s.list 0 .le;RICE|HBOOK|HANDYPAK - Selects the type of histogram. 3 packages are currently available for histogramming, and each may store histograms. The selects the package type. Currently RICE,HBOOK are implemented, HANDYPAK will follow. This qualifier only needs to be used once. Once the histogram type is selected it remains the same until changed. (Default:RICE) .list 0 .le;RICE - Histograms must have been stored by HISSAV. .le;HBOOK - Histograms must have been stored by HSTORE. Only 100,000 words of memory is allocated for histogram storage, so if you can not restore all hists, you must restore only individual ones by IDENT. .els 0 .le;FILE='filename' - Selects the filename to restore the histograms from. All histograms are restored, if IDENT is not specified. If IDENT is also specified, then for HBOOK only the histogram IDENT is restored. If the filename is blank (FILE='#') then the file selected is: .i5;HISSAV.BDT - For Rice hists. .i5;HBOOK.BIN - For HBOOK hists. .le;PROCESS='Process__name' - Selects a process get data from. This allows you to look at your histograms inside another process. Once you have shared histogram data with another process, you may not get any histogram data from files. The process you wish to share with must have called subroutine HBSHARE and used HBSHARE.OPT when linking. For information on HBSHARE see SUBROUTINES. Currently this only works for HBOOK histograms. .le;PID='nnnn' - Selects a process to get dat from by the PID number. .le;NAME='hist__name' - Selects the histogram by name or title. The data in the histogram is loaded into the data buffer. .le;IDENT=nnn - Selects the histogram by id number. The data in the histogram is loaded into the data buffer. .le;NEXT|PREVIOUS - Selects the next or the previous histogram. .le;ERROR - Set the error array DY or DZ from HBOOK hists. If this is specified and the histogram contains no errors, garbage may be collected in DY. .le;CONFIRM - This causes Topdrawer to confirm the histogram when it sets it. The histogram ID,NAME,size, and range of values is typed on your terminal. .le;TITLE - This plots the histogram title. The title may be split into 4 parts, Top, X, Y, and Z by separating them with semicolons. .i5;Top label;X label;Y label;Z label .els 0 Once a histogram is selected, the data is available for plotting. The command: .i5;SHOW HISTOGRAMS .br;Shows the current list of histograms available. .qe example The following sequence will plot a histogram stored by HSTORE. .i5;SET HIST HBOOK .i5;SET HIST FILE='filename' (Get the hists) .i5;SET HIST ID=5 .i10;or... .i5;SET HIST NAME='title of hist 5' .i5;HISTOGRAM .s.i10;or... .i5;SET HIST HBOOK FILE='filename' ID=5 .i5;HISTOGRAM .qd INPUT .i5;See command: SET CARD .qd INTENSITY .x Command>SET>INTENSITY .x Intensity .x Line width This sets the intensity level or line width of a plot. .i5;^&SE\&T ^&INT\&ENSITY level [PERMANENT] .x PERMANENT .s level=1 to 5. (Default:2) 5 is the brightest (widest). .br;PERMANENT - Sets the current width to be the new default. .qd LABELS .x Command>SET>LABELS This sets the size and enables the numeric labels on each axis. .i5;^&SE\&T ^&LA\&BELS [SIZE=nn] .i10;[^&AL\&L|^&TO\&P|^&BO\&TTOM|^&RI\&GHT|^&LE\&FT|^&X\&|^&Y\&|^&Z\&] [^&ON\&|^&OF\&F] .i10;[PERMANENT] .x PERMANENT .list 0 .le;SIZE - nn is the character size in tenths of an inch (Default:-1) .le;ALL - enables labels for top, bottom, right and left. .le;TOP - enables label for the TOP of plot .le;BOTTOM - selects label for the bottom of the plot. .le;RIGHT - selects label for the right hand side .le;LEFT - selects label for the left hand side. .le;X,Y,Z - selects the axis to plot. .le;ON - allows drawing labels .le;OFF - prevents drawing labels .le;PERMANENT - Makes the current settings permanent from plot to plot. .els 1 This acts on the current plot only if PERMANENT not specified. See:#SET#AXIS. .s;(DEFAULT:LEFT ON,BOTTOM ON) .qd LIMITS .x Command>SET>LIMITS Normally limits are automatically set from the data. This command allows you to set the limits of the plot independently of the data. This must be used before the first PLOT, JOIN, HIST, or BARGRAPH command. The limits are reset when a new plot is started. .i5;^&SE\&T ^&LI\&MITS .i10;[X [FROM] xxx [TO] xxx] .i10;[Y [FROM] yyy [TO] yyy] .i10;[Z [FROM] zzz [TO] zzz] .i10;[XMIN xxx] [XMAX xxx] [YMIN yyy] [YMAX yyy] [ZMIN zzz] [ZMAX zzz] .i10;[PERMANENT] .x PERMANENT .s If this command is issued without any limits specified, all previously set limits are removed. .s PERMANENT sets the current limits permanently or until the next SET LIMIT command. If you wish to turn unset permanent limits, set them permanently immediately after an NEW PLOT command. The following commands are equivalent: .i5;SET LIMITS X FROM 0 to 10.0 .i5;SET LIMITS X 0 10 .i5;SET LIMITS XMIN 0.0 XMAX 10.0 .note ^*WARNING\* If this command is issued in between 2 plots overlaying each other, they will not have the same scales. .end note .qd MODE .x Command>SET>MODE This controls a grab-bag of options. .i5;^&SE\&T ^&MO\&DE [[no]VECTOR] [ECHO [n]|NOECHO] .;i10;[[no]DEBUG] [[no]TRACE] [QUICK|SLOW] .s.list 0 .le;VECTOR - requires software drawn characters instead of hardware chars. Character generation is slower, but more uniform. Software characters are always drawn when a non blank case string is supplied. .le;ECHO n - selects n data points to be printed when read. .le;NOECHO - is the same as ECHO 0 .le;DEBUG,TRACE,QUICK do nothing on the VAX under Unified Graphics. .els 1 This acts on the current plot only. (Default:VECTOR,ECHO 20,NODEBUG) .qd ORDER .x Command>SET>ORDER This sets the order in which data must be entered. The order is the same as specified in the set order command. This option remains the same until the next SET ORDER or NEW PLOT command. .LM+10 .I-5;SET ORDER [X [fctr]] [Y [fctr]] [Z [fctr]] [DX|RX [fctr]] [DY|RY [fctr]] [DZ|RZ [fctr]] [SYMBOL] [DUMMY] .br;[PERMANENT] .x PERMANENT .x Symbol .LM .s.list 0 .le;X,Y,Z - The data to plot .x Error bars .le;DX,DY,DZ - The error on the data as half width for the error bars. .le;RX,RY,RZ - Errors given relative to the central value. .le;SYMBOL - The symbol to plot. This must not be the first entry. .le;DUMMY - Specifies this entry is a dummy and should be ignored. .le;fctr - Is a scale factor to multiply the data by when it is read. (Default:1.0) .le;PERMANENT - Specifies that this order is permanent until the next SET ORDER command. .els 1 (Default:X,Y,DX,DY,SYMBOL) .s If this command is used without any options other than PERMANENT, the order is set to the default. .qd OUTLINE .x Command>SET>OUTLINE This enables the outline on each axis. The outline is the line drawn at the edge of the plot. .i5;^&SE\&T ^&OU\&TLINE [^&AL\&L|^&TO\&P|^&BO\&TTOM|^&RI\&GHT|^&LE\&FT] [^&ON\&|^&OF\&F] .i10;[PERMANENT] .x PERMANENT .list 0 .le;ALL - enables outlines for top, bottom, right and left. .le;TOP - enables outline for the TOP of plot .le;BOTTOM - selects outline for the bottom of the plot. .le;RIGHT - selects outline for the right hand side .le;LEFT - selects outline for the left hand side. .le;ON - allows drawing outlines .le;OFF - prevents drawing outlines .le;PERMANENT - Makes the current settings permanent from plot to plot. .els 1 This acts on the current plot only if PERMANENT not specified. See:#SET#AXIS. .s;(Default:ON) .qd PATTERN .x Command>SET>PATTERN This selects the pattern for patterned lines. These are produced by JOIN, HIST, PLOT, or BAR commands. This option remains the same until changed by a SET PATTERN command. .i5;^&SE\&T ^&PAT\&TERN p1 s1 p2 s2 ....p10 s10 .s;See SET TEXTURE .s .i5;p = distance to draw in inches .i5;s = distance to skip in inches .s You may enter up to a maximum of 20 values. .s.c;example .i5;SET PATTERN 0,.1,0,.1,.1,.1,.1,.1 .br;sets up a dot,dot,dash,dash pattern .i5;SET PATTERN 0,.1,0,.05 .br;is an assymmetrical dot,dot pattern. .i5;SET PATTERN .2,.1,.1,.1 .br;is a long,short dash pattern. .qd PAUSE .i5;SET ^&PAU\&SE [ON|OFF] Pause is normally set on for interactive devices, and off for non interactive. The Pause occurrs at each NEW PLOT command inside an input file, or when deferred errors must be typed. .qd PEN .x Command>SET>PEN .x Color .x Pen number This selects the Calcomp plotter pens or the color. This is effective only for the current plot, or until another SET COLOR or SET PEN command. .i5;^&SE\&T ^&PE\&N 1|2|3|4|5|6|7 .s See: SET COLOR .s;(Default:1) .s;If no pen number is specified it is set to the default. .qd PROMPT .x Command>SET>PROMPT .i5;^&SE\&T ^&PR\&OMPT .i10;[MAIN prompt__string] .i10;[PAUSE prompt__string] .s;This sets the current prompt string with a maximum of 80 characters. If a null or blank string is used, then there is no prompt. If a prompt has imbedded blanks it must be enclosed in quotes. The prompt string remains the same until a new one is selected. .list 0 .le;MAIN - Is the main prompt string. (Default:"TD:") .le;PAUSE - Is the prompt string used when a NEW PLOT is started. (Default:"PAUSE:") .els 1 This command is useful for controlling the prompt for different types of terminals. On some terminals you can control the position of the prompt, so that it will not interfere with the plot, while on others, you may not want any prompts. .qe Examples .c;Example .i5;SET PROMPT MAIN Topdrawer: PAUSE " " .br;Changes the main prompt and sets no prompt for pause. .s.c;Example .i5;SET PROMPT MAIN "TD: " .br;This puts a space at the end of the prompt. .s.c;Example .i5;SET PROMPT MAIN="^*\*[f^*\*[KTD:" .br;Puts the cursor at the top of an ANSI (VT100 etc.) terminal for the prompt. .s ^*\*=the escape character which is a decimal 27 or "contrl__[". This may be entered with the EDT editor by: .i5;PF1 27 PF1 Key__3 .qd SCALE .x Command>SET>SCALE This selects the scales to use. .i5;^&SE\&T ^&SC\&ALE {X|Y|Z} [n1 [n2]] [BASE#n] .i10;[LINEAR|LOGARITHMIC|MONTHS|YEARS|USER#n|NORMAL [MEAN#x] [DEVIATION#s] ] .x LINEAR .x LOGARITHMIC .x MONTHS .x YEARS .x BASE .LIST 0 .le;n1,n2 specify the spacing of labels and ticks. If omitted "reasonable" values are picked. .LE;LINEAR - Linear scale is used .list 0 .le;n1 - maximum number of big ticks. (Default:6) .le;n2 - number of subintervals with unlabeled ticks (Default:-5) If n2>0 then then big ticks are used for subintervals. If n2<0 then small ticks are used. .els 0 .le;LOGARITHMIC - Log scale is used. .x LOGARITHMIC .list 0 .le;n1 - controls labels. .i5;n1>0 standard notation is used (1000) .i5;n1<0 exponential notation is used .i5;|n1|= SUM(2**N) Where N=tick locations .i10;For example 36=2**2+2**5 .i10;So ticks are at 2, 5 .le;n2 - controls intermediate ticks. .i5;n2<0 Short ticks are used .i5;n2>0 Large ticks are used .i5;|n2|= SUM(2**N) Where N=tick locations .els 0 .le;BASE n - For LINEAR this is useful for non-decimal units. For LOG scaling large ticks are put at powers of the base. This determines where ticks are put. BASE 2 would put labels at 0.5, 1, 2, 4... .le;MONTHS - labels are Jan, Feb etc. This invokes a special scale where Noon#Jan#1=1.01 .le;YEARS - Values are given by year and Julian day. Jan#1#1976=1976.001 .ELS 0 .qd SIZE .x Command>SET>SIZE This sets the physical size of the plot. .i5;^&SE\&T ^&SI\&ZE xxx [BY] yyy .i10;[UNITS units] [REDUCE factor] .x REDUCE .s.list 0 .le;xxx,yyy set the overall size of the plot .le;UNITS - sets the units of xxx or yyy (Default:inches) This changes only the position units. All character sizes are still measured in tenths of an inch. .x REDUCE .le;REDUCE - reduces the overall plot by the specified factor. This reduces the entire plot including the character sizes. .els 1 (Default:13 by 10 UNITS 1.) The default REDUCE is set according to the device selected. .note ^*WARNING\* If this command is issued in between 2 plots overlaying each other, they will not have the same scales. .end note .qd STORAGE .x Command>SET>STORAGE This defines what is kept in storage. The total buffer space leaves room for about 4096 points of 5 numbers/point. By redefining what is kept, you can allow for more points. SET ORDER automatically calls SET STORAGE if room for extra data is needed. This option remains the same until changed by a SET ORDER or SET STORAGE command. .i5;^&SE\&T ^&STO\&RAGE [X] [Y] [DX] [DY] [Z] [DZ] [SYMBOL] .x Symbol .s;(Default:X,Y,DX,DY,SYMBOL) .s;If this command is used without any options, the storage is reset to the default. If all 3 coordinates X,Y,Z are included in storage, 3-d plots are turned on. .s.c;Example .i5;SET STORAGE X Y SYMBOL .br;This gives you storage for about 10,240 data points. To see the current storage use the command: SHOW#STORAGE. .qd SYMBOL .x Command>SET>SYMBOL .x Symbol This determines the default symbol for PLOTted data. .i5;^&SE\&T ^&SY\&MBOL [xx] .i10;[SIZE nn] .i10;[PERMANENT] .X PERMANENT .s.list 0 .le;xx - is the symbol to plot 0O to 9O or any duplex character. The second character in the xx pair selects the case or font to use. Special symbols (not letters or numbers) must be enclosed in quotes or apostrophes. Only plot symbols 0O to 9O are guaranteed to be properly centered. .s.c;^*Examples\* .i5;'_$' - plots dollar signs. .i5;0O - plots crosses .i5;GF - plots uppercase Greek Gammas. .i5;See:FONTS .i5;(Default:point) .le;SIZE - is the size in tenths of an inch (Default:2) .le;PERMANENT - Makes the current symbol the permanent default. Normally a NEW PLOT command resets the symbol to the default. .els 1 If SET SIZE is executed without either a symbol or size specified, the symbol is set to the default. .qd TEXTURE .x Line texture .x Command>SET>TEXTURE .x Command>SET>STRUCTURE This sets the texture of a line drawn by a PLOT, BAR, JOIN, or HIST command. .i5;^&SE\&T ^&TE\&XTURE|^&STR\&UCTURE .i10;[^&SO\&LID|^&DO\&TS|^&DA\&SHES|^&DAA\&SHES|^&DOTD\&ASH|^&PA\&TTERNED|^&FU\&NNY] .x SOLID .x DOTS .x DASHES .x DAASHES .x DOTDASH .x PATTERNED .x FUNNY .s.list 0 .le;SOLID - Solid line .le;DOTS - Dotted line .le;DASHES - Short dashed line .le;DAASHES - Long dashed line .le;DOTDASH - Dot-dash line .le;PATTERNED - Line determined by SET PATTERN. .le;FUNNY - is a dot at the ends of each line segment. This is generally only useful for joined and smoothed curves. .els 1 (Default:SOLID) .s;If no texture is specified it is set to the default. .qd THREE .x Command>SET>THREE .x 3-D plots This sets parameters for 3-dimensional plots and turns ^&ON\& 3-d graphics. Essentially you must set up the viewpoint for 3-D. The plot is seen by an observer through a "screen" or window. The location of the screen and observers eye may be specified. .i5;^&SE\&T ^&TH\&REE [OFF] .i10;[CENTER x y z] [VERTICAL x y z] .i10;[DIRECTION x y z] [THETA angle] [PHI angle] .i10;[DISTANCE d] [SCRD scrd] .i10;[^&ON\&|^&OF\&F] .i10;[ORIGIN x y z] .i10;[PERMANENT] .x PERMANENT .i10;[SEPARATION s|LEFT|RIGHT|MIDDLE] .i10;[WORLD x [BY] y [BY] z] .i10;[XAXIS|YAXIS|ZAXIS angle] .s ^*NOTE:\* The actual view also depends on the window size selected by SET WINDOW. .note ^*WARNING\* If this command is issued in between 2 plots overlaying each other, they will not have the same scales. .end note .qe CENTER .i5;CENTER x y z .br;The center of the picture in 3-d WORLD coordinates. This defines the center of the object being viewed. (Default:6.5,5,5 inches) .i5;VERTICAL x y z .br;Direction vector in WORLD system which projects onto a vertical line in the window. (Default:0,0,1 - Z axis) .qe DIRECTION .i5;DIRECTION x y z .br;Direction vector from CENTER to eye. .x THETA .i5;THETA=angle PHI=angle br;Alternate specification of DIRECTION in polar coordinates. This is probably an easier number to specify. .x PHI .s;PHI is angle in degrees from vertical to line through the eye. (Default:60.0) .s;THETA is the angle between projections in the horizontal plane of the X-Axis and the line to the viewing position. (Default:60.0) .note ^*WARNING\* The alogorithm used in Histogramming or Joining the data requires that the viewpoint can not be "over" the structure being plotted. The hidden line removal algorithm will not work for an improperly placed viewpoint. .end note .s.c;^*Example\* You wish to look at the plot from the +X axis: .i5;SET THREE THETA=0 .br;You wish to lood at the plot from the +Y axis: .i5;SET THREE THETA=90. .qe DISTANCE .i5;DISTANCE=nnn .br;Distance from CENTER to the EYE (Default:35in.) .i5;SCRD=nnn .br;Distance from screen to EYE. (Default:18in.) .s The DISTANCE and SCRD are set so that the plot approximately fills the full screen. This cuts off the front corner of the plot slightly. If you wish to see everything increase DISTANCE to 50. .s Essentially the SCRD is the distance from you to the screen, and DISTANCE is the distance to the object being viewed. A smaller ratio of SCRD/DISTANCE produces a smaller plot. The absolute distance determines the perspective of the plot. Large distances produce essentially a parallel projection. Sometimes vertical lines are treated as being hidden when in fact they are visible. This may be corrected by moving the view point far from the screen. To set a distant viewpoint: .i5;SET THREE DIST 8000 SCRD 2000 .qe ON .i5;ON|OFF|AUTOMATIC .br;This turns on or off 3 dimensional graphics. AUTOMATIC specifies that 3-d graphics is determined by the data. 3-d is turned on only for Mesh data or if all 3 coordinates X,Y,Z are in storage. (Default:ON) .qe ORIGIN .i5;ORIGIN x0 y0 z0 .br;Sets the position in DATA system at which 3 axes will intersect when drawn. (For MESH data, PLOT AXES is needed to draw them) The origin is normally set to be the minimum X,Y,Z value entered. When set this value is used locate the axes and the title. .qe PERMANENT This makes all currently set parameters the default. Since the command line is parsed from left to right, options on the left side of this keyword are permanent, but options to the right are not. When a new plot is started the current options revert to the permanent value. .qe SEPARATION .br;This specifies the distance between the true viewing point and viewing axis. This is used for making stereo pairs. (Default:SEPARATION=0) .list 0 .le;LEFT - SEPARATION = -1.5 .le;RIGHT - SEPARATION = 1.5 .le;MIDDLE - SEPARATION = 0 .els 0 .qe WORLD .i5;WORLD x [BY] y [BY] z .br;This sets the limits in inches on x,y,z in the world coordinates. All data outside of these limits is clipped. This is not set to the default when a new plot is started. (Default:13,10,10 inches) .qe XAXIS .i5;XAXIS|YAXIS|ZAXIS angle .s These options are used to control how the ticks and labels are drawn relative to the axes. If the angle is not specified or it is greater than 360 degrees the axes are drawn for maximum visibility. The angle allows you to rotate the labels,ticks, and title around the axis. The rotation is specified by permuting the axes XYZ. For a given axis n the angle 0 lies in the n,n+1 plane, and angle 90 lies in the n,n+2 plane, with the labels in the negative side. .s .c;Table of axes .s;This gives the plane and direction of the labels. The sign indicates the side the labels are drawn on. .nf.lm+5.ts +8,+8,+8,+8,+8 Axis 0 90 180 270 degrees X -XY -ZX XY ZX Y -YZ -XY YZ XY Z -ZX -YZ ZX YZ .f.s1.lm .x;^*Example\* .i5;SET THREE XAXIS 0. .br;This draws the X labels and ticks in the XY plane with the labels in the negative X side of the axis. .s.i5;SET THREE YAXIS 90. .br;This draws the X labels and ticks in the YZ plane with the labels in the negative Z side of the axis. .qe Examples There is a set of sample plots you may view. They include a drawing of the various angles and distances. They are: .i5;SYS_$UGSYS:TD3D.TOP .qd TICKS .x Command>SET>TICKS This determines the presence or absence of tick marks and their sizes. .i5;^&SE\&T ^&TIC\&KS [SIZE n] .i10;[^&AL\&L|^&TO\&P|^&BO\&TTOM|^&RI\&GHT|^&LE\&FT|^&X\&|^&Y\&|^&Z\&] [^&ON\&|^&OF\&F] .i10;[PERMANENT] .x PERMANENT .s.list 0 .le;SIZE - Sets the size of the smaller ticks in inches. The larger ones are 3 times the small ones. (Default:0.1) .le;ALL - enables ticks for top, bottom, right and left. .le;TOP - enables tick for the TOP of plot .le;BOTTOM - selects tick for the bottom of the plot. .le;RIGHT - selects tick for the right hand side .le;LEFT - selects tick for the left hand side. .le;X,Y,Z - selects the axis to plot. .le;ON - allows drawing ticks .le;OFF - prevents drawing ticks .le;PERMANENT - Makes the current settings permanent from plot to plot. .els 1 This acts on the current plot only if PERMANENT not specified. See:#SET#AXIS. .s;(Default:ON) .qd TITLE .x Command>SET>TITLE This sets the default title sizes in inches. The TOP title is 1.5 times this value. .i5;^&SE\&T ^&TIT\&LE [SIZE n] [PERMANENT] .s;n - gives the approximate spacing between chars. in tenths of an inch. If n is negative hardware characters will be used when available. If n is positive only software characters will be used. (Default:-2) .s PERMANENT - makes the size the permanent value. Normally the size is set to the permanent value when a new plot is started. .s If the SIZE is omitted it is set to the default. .qd WIDTH .x Command>SET>WIDTH .x Intensity .x Line width This sets the line width or intensity of a plot. .i5;^&SE\&T ^&WID\&TH level [PERMANENT] .x PERMANENT .br; level=1 to 5. (Default:2) 5 is the widest (brightest). .br;PERMANENT - Sets the current width to be the new default. .qd WINDOW .x Windows .x Command>SET>AREA .x Command>SET>WINDOW This sets the coordinates in inches of the axes of the the graph. If either X or Y are not specified they are reset to their default values. .i5;^&SE\&T ^&WIN\&DOW|^&ARE\&A [X xxx [TO] xxx] [Y yyy [TO] yyy] .s This sets the X,Y axes to run between the specified limits in inches. .s.i10;or .... .i5;SET WINDOW [X n1 OF n2] [Y n1 OF n2] .s This divides the screen into n2 windows of equal size and selects one of them. Non integral n1 or n2 may be used for fine adjustment. .br;See also: SET SIZE .s;(Default: In 20% from the screen edge on bottom and left, 10% in on the top and right) .note ^*WARNING\* If this command is issued in between 2 plots overlaying each other, they will not have the same scales. .end note .qe 3-d When setting the windows for 3-d plots there is no compensation for the viewing distance from the object. For the same DISTANCE and SCRD a window which is half the size of a normal window will only show half of the view. You must compensate for this effect by changing DISTANCE or SCRD. The effect is similar to what you would see if you, and the window remained in the same position and only the window size changed. The following will plot approximately the data with the same view. .i5;SET THREE DISTANCE 100 SCRD 50 .i5;SET WINDOW X 1 of 1 Y 1 of 1 .i5;HISTOGRAM .i10;or ... .i5;SET THREE DISTANCE 100 SCRD 25 .i5;SET WINDOW X 1 of 2 Y 1 of 2 .i5;HISTOGRAM .s The following will show a similar view, but from a more distant perspective: .i5;SET THREE DISTANCE 200 SCRD 50 .i5;SET WINDOW X 1 of 2 Y 1 of 2 .i5;HISTOGRAM .s Since the size of 2 windows is less than half of a single window the example with 2 windows shows slightly less than 1 window. .qc SHOW .x Command>SHOW .i5;^&SH\&OW opt1 opt2 ,.... optn .br;Shows options for the current plot. Most options for SET may be used for show. The options are: .nj.br;.ts +10,+10,+10,+10,+10,+10,+10 ARROW AXIS BAR BOX CARD CIRCLE COLOR DATA DIAMOND ERASE ERRORS ELLIPSE FILE FLAGS FLUSH FONT FORMAT HISTOGRAM GRID INTENSITY LABELS LIMITS MODE ORDER OUTLINE PATTERN PAUSE PEN SCALE SIZE STORAGE SYMBOL TEXTURE THREE TICKS TIME TITLE WIDTH WINDOW .j.qd list__of__options .list 0 .le;ARROW - default arrow format .le;AXIS - default axis .le;BAR - ends of error bars .le;BOX - default box size .le;CARD - Maximum length of input lines .le;CIRCLE - Same as SHOW ELLIPSE .le;COLOR - default color or pen number .le;DATA - Show current data. .le;DIAMOND - default diamond size .le;ELLIPSE - default ellipse size .le;FILE - shows current files open, and line number. .le;FLAGS - current setting of all flags (this is for debuggind TOPDRAWER). .le;FLUSH - Controls automatic flushing of plot data .le;FONT - UGSYS character set .le;FORMAT - Format for input lines .le;GRID - grid marks that overlay plot .le;HISTOGRAM - Shows the list of histograms available. .le;INTENSITY - default intensity (line width) .le;LABELS - numeric labels on axes .le;LIMITS - limits for plot axis .le;MODE - misc. flags .le;ORDER - Determines interpretation of input data .le;OUTLINE - outline around plot .le;PATTERN - the pattern for PATTERNED lines .le;PAUSE - controls whether TOPDRAWR pauses at NEW PLOT .le;PEN - the pen or color to use in plotting. .le;SCALE - scale (log/linear) and units. .le;SIZE - size of screen or paper .le;STORAGE - what is kept in storage .le;SYMBOL - default symbol to plot .le;TEXTURE - default line style (DOTTED,SOLID...) .le;THREE - parameters for 3-dimensional plots .le;TICKS - tick marks on axes .le;TITLE - size of title .le;WIDTH - the line width or intensity .le;WINDOW - the plotting area (labels may be outside area) .els 0 .qd DATA .i5;^&SH\&OW ^&DA\&TA .i10;[POINTS|COLUMNS N1 [TO] N2] .i10;[LINES|ROWS N1 [TO] N2] .i10;[STATISTICS] .i10;[LIMITED] This types the current data in the buffer. .list 0 .le;POINTS|COLUMNS - This specifies which points to show. For 3-d this is the range of column numbers. .le;LINES|ROWS - For 3-d plots specifies which lines or rows of the mesh data to show. .le;STATISTICS - This displays only the statistics on the data, and the actual data values are suppressed. .le;LIMITED - Limits the data shown to the range defined by the SET#LIMIT command. This limit is in addition to the POINTS/LINES specified. For 3-d data the limit on the dependent variable is ignored. .els 0 .s.c;Example You have entered a 3 dim array with 20 by 20 points. X ranges from 0 to 10, Y from 100 to 200. The total array will not fit on the terminal screen so you show a subset of the data: .i5;SET LIMITS X .5 to .8 Y 100 to 120 .i5;SHOW DATA POINTS 3 to 8 LINES 5 to 10 .i5;SHOW DATA POINTS 1 5 LINES 1 5 (SHOWS 25 points) .i5;SHOW DATA LINE=1 (Shows only first 20 points) .i5;SHOW DATA LIMITED (shows x=.5 to .8, Y=100 to 120) .s.c;Example You have entered 100 data points X,Y,DX,DY etc. To show only points number 5 to 20 .i5;SHOW DATA POINTS 5 to 20 .qd FLAGS This show the status of all flags. This is generally only useful for debugging Topdrawer. .qd HISTOGRAMS This command shows the list of histograms made available by the SET#HISTOGRAM command. .i5;SHOW HISTOGRAMS .i10;[FROM] [n1] [TO] [n2] .i10;[ALL|FULL|BRIEF] .s.list 0 .le;FROM,TO - You may specify the range of histograms to show by number. If n1 is specified and n2 is omitted n2 is assumed to be the same as n1 and only one histogram entry is shown. .le;ALL or FULL - shows all data about the histograms. This includes the ID,NAME, SIZE, and range of values. For HBOOK histograms over/underflows are also listed. .le;BRIEF - shows only the list of IDs available. Normally the ID and NAME are listed. .els 0 .qd TIME This shows the current CPU and clock time for your process. .qd example .i5;SHOW BOX CIRCLE DIAMOND .br;shows the default sizes for drawing boxes etc. .s.i5;SHOW COLOR INTENSITY TEXTURE .br;shows all the default attributes for lines. .s.i5;SHOW STORAGE .br;shows the current storage allocation. .qc SMOOTH .i5;^&SM\&OOTH {X|Y} [LEVEL n] [POINTS n1 [TO] n2] .x Command>SMOOTH .s Replace the X or Y values by new values that give a smooth curve. ^*The data is assumed to be a histogram of equally spaced bins.\* .list 0 .le;X,Y selects whether X or Y values are replaced. .le;LEVEL - Selects approximately the number of points on either side of the bin that are used in determining the value for that bin. (Default:3) .le;POINTS - Selects which data points are smoothed. If omitted all are smoothed. .els 1 The data is smoothed by repeatedly transforming the points and residuals, using running means, quadratic interpolation, and hanning. Similar algorithms are described in ^&Exploratory Data Analysis\& by John W Tukey at Slac. .qc SPAWN .x Command>SPAWN This command temporarily spawns out of TOPDRAWER to VMS. .i5;^&SP\&AWN .s;For example you are trying to do a plot, but you have forgotten the filename with the TOPDRAWER source, so you: .i5;TD:SPAWN DIRECTORY You will get a directory listing so you can find the file name. .s If you use the SPAWN command with no parameters, you return to TOPDRAWER with the VMS command: .i5;_$ LOGOFF .qc STOP These commands all stop TOPDRAWER. Any data remaining in the buffers is flushed, and all output files are closed. .i5;^&ST\&OP|^&EN\&D|^&EX\&IT|^&HA\<|^&QU\&IT .x Command>STOP .x Command>EXIT .x Command>END .x Command>HALT .x Command>QUIT .br;This is also equivalent to typing control Z, or encountering the end of the batch input file. .qc SWAP .x Command>SWAP .i5;SWAP [X|DX|Y|DY|Z|DZ] [WITH] [X|DX|Y|DY|Z|DZ] This command swaps the data for 2 variables. This is useful if the data in in the wrong location for the type of plot you wish to make. An example of this is making 3-d plots from binned data. You have read in data, X,Y,DY and you have binned it into a frequency distribution using the BIN command. Now the result is in X,Y,DX,DY. You wish to make a 3-d histogram, but the data must be in X,Z,DX,DZ. To fix the problem: .i5;SWAP Z WITH Y .i5;SWAP DZ WITH DY .br Now you can set the Y value and perform the histogram. .i5;Y=10.0 .i5;SET THREE ON .i5;HISTOGRAM .qc TITLE .x Command>TITLE Puts a title on the plot .i5;^&TI\&TLE [xxx, [yyy, [zzz]]] .i10;[^&TO\&P|^&BO\&TTOM|^&RI\&GHT|^&LE\&FT|^&X\&|^&Y\&|^&Z\&] .i10;[DATA|XDATA|YDATA] [CENTER] [LINES=n] .i10;[SIZE n] [ANGLE ddd] [SPACES n] [INDEX n] 'text__of__title' .i10;[CASE 'case modifier string'] .br;The text will be written on the plot. It must be enclosed in apostrophes or quotes. .qd Options .list 0 .le;xxx, yyy, zzz - Specifies the position of left most character in the text. If no position is given, the title is placed below the most recent title. .le;DATA - Specifies the DATA coordinate frame. Normally xxx, yyy are in the text coordinate system. .le;XDATA - xxx is in data frame yyy in text frame. .le;YDATA - yyy is in data frame xxx in text frame. .le;CENTER - centers the title at xxx, yyy, zzz. .le;TOP,BOTTOM,RIGHT,LEFT - Specify the title position relative to the data window. The title is centered at the appropriate position. .le;X,Y,Z - For 3-d plots specify the title position relative to the the X,Y,Z axes. For 2-d plots X,Y,Z are synonyms for LEFT,BOTTOM,TOP. .le;SPACES=n This specifies how much space the title occupies. This is only necessary if variable character spacing, or sub/superscripts are used. .le;LINES=n - Moves the title up by n lines to make space for extra text. .le;SIZE n - gives the approximate spacing between chars. in tenths of an inch. If n is negative hardware characters will be used when available. If n is positive only software characters will be used. .le;ANGLE ddd - Gives the angle in degrees measured counterclockwise. ANGLE=90 runs the title from bottom to top. .le;INDEX=n - Specifies the line spacing in multiples of character spacing. This is used for multiline titles. .els 0 .qd 3-d If the qualifiers DATA or X|Y|Z are used, then the title is plotted relative to the default X,Y,Z axis. If you set each axis to be in a particular location, then you should plot the axis title specifying X,Y,Z or specify the origin using the SET#THREE command. The title starts at the origin of the axis. If the keyword CENTER is used the title is centered along the axis. .s If the title position is also specified, then the title is plotted according to the position specified. .s The AXIS angle determines the orientation of the title. See the command SET#THREE. .qd CASE .x Command>CASE Controls the format of the title. It must be the next command after the TITLE or MORE command or on the same line with the TITLE command. .s.i5;^&CA\&SE 'case__text' .s This specifies the case or character type of each character in the title text. The case__text should be the same length as the title. For the definitions of all possible CASE characters see: .i5;TOPDRAWER FONTS .s It is not necessary to use a case command if you only want upper and lower case ASCII characters. Simply type them into your title as you wish to see them. .qc X .x Command>X .x Command>Y .x Command>Z .x Command>DX .x Command>DY .x Command>DZ Put a sequence of values into one of the data point or error arrays. This is useful when the X values are uniformly spaced, and you only wish to enter the Y values. This may also be used for entering constant or counting errors. .i5;{X|Y|DX|DY} [{BINS|POINTS} [n1 [TO] n2 ]] .i5;[FROM#xlow] [TO#xhi] [BY#xstep] .i5;[POISSON] .s.list 0 .le;POINTS|BINS - selects the points for which values are generated. .c;Example .i5;X POINTS FROM 0 to 10 by 1 .i5;gives 11 values 0,1,2,...10 .le;BINS - gives values at the centers of bins whose edge is defined by the values. .c;Example .i5;X BINS FROM 0 to 10 by 1 .i5;gives 10 values 0.5,1.5....9.5 .le;n1,n2 - define the array indices. If only 1 number is supplied it is assumed to be n2 and n1 is assumed to be 1. .le;FROM,TO,BY select the range of values to generate. Only constant values may be generated for DX,DY or DZ. .le;POISSON applies only to DY and makes DY the square root of Y. .els 1 .qd examples .s.c;Example .i5;X BINS=10 FROM 0 to 20 .i5;generates 1,3,5,...19 .br;If only FROM or TO are given n2=the current number of data points. .s.c;Example .i5;DY 5 .br;Sets all Y errors to +-5. .s.c;Example .i5;DX 1 .br;Sets all Y bin widths to 1. The error on X is +-DX/2. .s.c;Example .i5;SET ORDER Y .i5;1.5; 3.8; 9.7 .i5;X FROM 1 to 3 .i10;or.... .i5;X FROM 1 BY 1 .i10;is the same as: .i5;1 1.5; 2 3.8; 3 9.7 .qc Y See: X .qc Z See: X .qb Examples There are several files that give examples of TOPDRAWER plots. .c;^*Fonts + 2 dimensional graphics\* .i5;SYS_$UGSYS:TDINTRO.TOP .c;^*3 dimensional graphics\* .i5;SYS_$UGSYS:TD3D.TOP .c;^*Color graphics on VT-240 or GIGI\* .i5;SYS_$UGSYS:COLORGRAPH.TOP .c;^*More examples\* .i5;SYS_$UGSYS:BENCH.TOP .if subr .qb Subroutines .x Subroutine The TOPDRAWER package is available as a collection of subroutines. You can call them to produce plots from any program. Each subroutine is the same as giving a TOPDRAWER command. They produce error messages on logical unit 6. They are available in library: .c;SYS_$UGSYS:TOPDRAWER .qc strings .note ^#^*WARNING\*\# Some routines are not fully Fortran-77 compatible. You must use either hollerith data, byte arrays, literals, or character variables sent by reference. .end note If you use a byte array or a character array sent by reference, you must terminate it with a semicolon (;) The following are all legal: .i5;CHARACTER*8 str .i5;DATA str /'Title;'/ .i5;CALL TDTITL(%REF(str)) .i10;or... .i5;CALL TDTITL('Title') .i10;or... .i5;CALL TDTITL(6HTitle;) .i10;or... .i5;REAL*8 str .i5;DATA str /'Title;'/ .i5;CALL TDTITL(str) .i10;or... .i5;byte str(5) .i5;DATA str /'T','i','t','l','e',';'/ .i5;CALL TDTITL(str) .qc linking .x Linking routine For more information on linking see UGSYS. The following routines should be linked to your program. .i5;_$ LINK Routine, - .i10;SYS_$UGSYS:TOPDRAWER, - .i10;SYS_$USERLIB:PACKLIB/libr,KERNLIB/libr,ANALVAX/libr, .i10;SYS_$UGSYS:NUCLEUS, - .i10;SYS_$UGSYS:SIMPLEX+SYS_$UGSYS:DUPLEX, - .i10;SYS_$UGSYS:TEK4014+UGSIXEL+VEP12FF, - .i10;SYS_$UGSYS:OBJLIB/LIBRARY .s This will allow you to use the VERSATEC,LN-03, and any terminal in Bonner Lab. .note If you do not wish to include HBOOK and RICE histogram routines or you do not have PACKLIB,KERNLIB, and ANALVAX you should link in 2 dummy subroutines (T2SETH,T2SHOH). .end note .qc Demo__program .x Demonstartion programs There is a Demo program in SYS_$UGSYS: called TD__DEMO.FOR and also a command file to build it called TD__DEMO.COM. This illustrates the usage of the TOPDRAWER subroutines. .qc List__of__Subroutines .x Subroutines .list 0 .le;TDEND - Empties buffers and closes graphics. .le;TDFLSH - Flushes the buffers .le;TDHIST - Does histograms .le;TDJOIN - Joins points .le;TDLIMS - Sets plot limits .le;TDNEWP - Same as NEW FRAME command .le;TDPLOT - Same as PLOT command .le;TDSET - Sets parameters .le;TDTEXT - Draws text - same as TITLE command .le;TDTITL - Same as TITLE command .le;TDCASE - Same as CASE command .le;TDTSET - Additional parameters for TDTITL, TDCASE .le;TDVAX__PLOT - Set up default device .le;TD3JIN - Join 3-d data .le;TD3HST - Histogram 3-d data .le;HBSHARE - Sets up to share with other processes. .els 0 .QC TDEND This subroutine ends the graphics and closes any output files. This should not be used to end an individual plot of a series. It only needs to be called once before exiting from your program. .qc TDFLSH Normally the graphics buffer is flushed after the subroutine call unless FLUSH is set OFF. TDFLSH will allow you to flush the buffers only when desired. This is much faster than flushing automatically. .qc TDHIST Does histograms .i5;CALL TDHIST(Npts,X,Y,DX,DY,LEVEL,MODE) .x Subroutine>TDHIST .list 0 .ts +10,+10,+10,+10,+10 .le;Npts - Then number of points to plot .le;X(Npts) - The X for each datum to histogram .le;Y(Npts) - The Y for each datum .le;DX(Npts) - The Error in X .le;DY(Npts) - The Error in Y .le;LEVEL = 0 Histogram .br; = 1 BARCHART .le;MODE - Selects the line structure .x SOLID .x DOTS .x FUNNY .x DASHES .x DAASHES .x DOTDASH .x PATTERNED .br;1*64,###2*64,####3*64,##4*64,##5*64,######6*64,####7*64 .br;##64,####128,#####192,###256,###320,#######384,#####448 .br;DOTS,#DASHES,#DOTDASH,#SOLID,#FUNNY,#PATTERNED,#DAASHES .els 0 .qc TDJOIN Joins points .i5;CALL TDJOIN(Npts,X,Y,DX,DY,LEVEL,MODE) .x Subroutine>TDJOIN .list 0 .le;Npts - Then number of points to plot .le;X(Npts) - The X for each datum to histogram .le;Y(Npts) - The Y for each datum .le;DX(Npts) - The Error in X .le;DY(Npts) - The Error in Y .le;LEVEL - The number of segments per/point .le;MODE - Texture and Fit parameters may be added together. .c;Type of fit .nf 0 1 2 Default Spline "GENERAL" .i5;The default is initially "GENERAL" .f .c;Texture params .x SOLID .x FUNNY .x DOTS .x DASHES .x DAASHES .x DOTDASH .x FUNNY .x PATTERNED .nf .br;1*64,###2*64,####3*64,##4*64,##5*64,######6*64,####7*64 .br;##64,####128,#####192,###256,###320,#######384,#####448 .br;DOTS,#DASHES,#DOTDASH,#SOLID,#FUNNY,#PATTERNED,#DAASHES .f .els 0 .qc TDLIMS Sets limit for data set. .i5;CALL TDLIMS(OPTIONS,Npts,values,[errors]) .x Subroutine>TDLIMS .s.list 0 .le;OPTIONS: 'XMIN', 'XMAX', 'X', 'YMIN', 'YMAX', 'Y' .br;This specifies what limits are to be set. For example if 'X' is specified, both XMIN and XMAX are set. .le;Npts - The number of data points. .le;Values(NPTS) - The array of data to use in setting the limits. .le;Errors(NPTS) - The corresponding error array .els 0 .qd example .i5;REAL X(2),DX(2) .i5;DATA X/0.,10./ .i5;CALL TDLIMS('X',2,X) .br;This will set the plot to range from 0 to 10 along the X axis. .qc TDNEWP This starts a new plot and optionally gives the frame an ALIAS. .i5;CALL TDNEWP(['Alias']) .x Subroutine>TDNEWP .qc TDPLOT Plots points. .i5;CALL TDPLOT(Npts,X,Y[,DX[,DY[,'symbol']]]) .x Subroutine>TDPLOT .br;This plots the X,Y data using the specified symbol. .s.list 0 .le;Npts - Then number of points to plot .le;X(Npts) - The X for each datum to histogram .le;Y(Npts) - The Y for each datum .le;DX(Npts) - The Error in X .le;DY(Npts) - The Error in Y .le;symbol - The symbol to use in plotting .els 0 .qd example .i5;CALL TDPLOT(1,100.,200.,0.,0.,2H0O) .i10;or... .i5;CALL TDPLOT(1,100.,200.,0.,0.,'0O') .br;Puts a cross at 100.,200. in the data frame. .qc TDSET Sets parameters. .i5;CALL TDSET(OPTIONS) .x Subroutine>TDSET .s;OPTIONS is a literal or hollerith array containing the options The options are the same as for the SET command. .qd example .i5;CALL TDSET('SIZE 10 BY 8') .br;This sets the size of the plot. .i5;CALL TDSET('COLOR BLUE') .br;Now everything is plotted in blue. .qc TDTEXT .x Subroutine>TDTEXT Outputs titles .i5;CALL TDTEXT('options','title','case'[,x[,y[,z]]]) .br;This puts the title at the specified x,y,z .s .list 0 .le;options - This is a string specifying the options. These may be any options used by the TITLE command. Some available options are: .i5;TOP, BOTTOM, RIGHT, LEFT, DATA, ANGLE=nnn.n, X, Y, Z, SIZE=nn.n .le;title - text to put on the screen. .le;case - The case string. If '#' is used then the text consists of normal ASCII characters .le;x,y,z - Specify the title position in TEXT coordinates. If omitted and no options are specified, the current title is placed under the last. .els 1 This is a Fortran-77 compatible subroutine. ^*Do not use %REF\* with the option, title, or case strings. Options, title, and case must be either literals or character variables. .qd example .i5;CALL TDTEXT('TOP','My graph','#') .i5;CALL TDTEXT('Bottom','X Axes','#') .i5;CALL TDTEXT('#','More on the bottom','#') .i5;CALL TDTEXT('Data','This is at location 5,1.8','#',5.,1.8) .qc TDTITL .x Subroutine>TDTITL Outputs titles .br;^*This routine is not recommended\*. It is provided for compatability with older versions of Topdrawer. Use TDTEXT instead. .i5;CALL TDTITL('title',,x,y) .br;This puts the title at the specified x,y. .i5;CALL TDTITL('title','position') .br;This puts the title at the specified position. .i5;CALL TDTITL('title') .br;This puts a title under the last title. .s .list 0 .le;title - Title .le;x,y - Specify the title position in TEXT coordinates. .le;position - Specifies the position relative to the data area .i5;parameters: .i5;'TOP', 'BOTTOM', 'RIGHT', 'LEFT' .le;If 'title' alone is specified, then the current title is placed under the last. .els 0 .qd example .i5;CALL TDTITL('My graph','TOP') .i5;CALL TDTITL('X Axes','BOTTOM') .qc TDCASE .x Subroutine>TDCASE Outputs extended titles with case formatting. .br;^*This routine is not recommended\*. It is provided for compatability with older versions of Topdrawer. Use TDTEXT instead. .i5;CALL TDCASE('title','case'[,x,y]) .i5;CALL TDCASE('title','case','position') .i5;CALL TDCASE('title') .s;See TDTITL for more information .qc TDTSET .x Subroutine>TDTSET This controls the format of titles. This modifies only the next CALL TITLE or CALL CASE. .br;^*This routine is not recommended\*. It is provided for compatability with older versions of Topdrawer. Use TDTEXT instead. .i5;CALL TDTSET(SIZE,[ANGLE,[SPACES,[IDATA]]]) .list 0 .le;SIZE - The character size in tenths of inches. .le;ANGLE - The Angle to draw the title at. .le;SPACES - The number of spaces the title occupies. .le;IDATA - Non zero if title is specified in DATA coordinates. .els 0 .qc TD3JIN This joins 3-d data. .i5;CALL TD3HST(ARRAY,NX,NY,IXYZ,ITXTUR,N3,N4) .list 0 .le;ARRAY(nx,ny+1) - Contains the 3-d data. .list 0 'o' .le;ARRAY(1,1) - Reserved .le;ARRAY(*,1) - X values at center of bin .le;ARRAY(1,*) - Y values at center of bin .le;ARRAY(2:nx,2:ny) - Z values .els 0 .le;IXYZ controls type of plot. .list 0 'o' .le;0 = draw X,Y,Z .le;1 = draw X lines only .le;2 = draw Y lines only .le;3 = draw Z lines only .els 0 .le;ITXTUR - (N*64=texture, N=1:7) .le;N3 - Low X chan to plot (0=plot all) .le;N4 - Low Y chan to plot (0=plot all) .els 0 .qc TD3HST This histograms 3-d data. .i5;CALL TD3HST(ARRAY,NX,NY,IXYZ,ITXTUR,DXYZ(3),N3,N4) .list 0 .le;ARRAY(nx,ny+1) - Contains the 3-d data. .list 0 'o' .le;ARRAY(1,1) - Reserved .le;ARRAY(*,1) - X values at center of bin .le;ARRAY(1,*) - Y values at center of bin .le;ARRAY(2:nx,2:ny) - Z values .le;ARRAY(1,NY+1) - Lower Edge of first x bin .le;ARRAY(2,NY+1) - Upper Edge of last x bin .le;ARRAY(3,NY+1) - Lower Edge of first y bin .le;ARRAY(4,NY+1) - Upper Edge of last y bin .els 0 .le;IXYZ controls type of plot. .list 0 'o' .le;1 = draw X lines .le;2 = draw Y lines .le;4 = draw Z lines .le;8 = NoDEPTH .le;16 = NOHIDE .le;32 = NOFRAME .le;64 = Shade XY face .le;128 = Shade YZ face .le;256 = Shade ZX face .le;512 = Shade with X's .le;1024 = Shade with dots. .els 0 .le;DXYZ(3) - Distance between lines used to shade plot (DX,DY,DZ) .le;ITXTUR - (N*64=texture, N=1:7) .le;N3 - Low X chan to plot (0=plot all) .le;N4 - Low Y chan to plot (0=plot all) .els 0 .qc TDVAX__PLOT .x Subroutine>TDVAX__PLOT .i5;CALL TDVAX__PLOT .br;This will set up your terminal as the default device, provided the symbol PLOT__TERM is correctly set. Normally it is set when you log in so you usually do not need to worry about it. .s If this routine is not called, you must call TDSET and specify the device to use in plotting. .endif subr .qc HBSHARE .i5;COMMON / /MEMORY(ISIZE) .i5;DATA IPID/-1/ .i5;ISTAT=HBSHARE(ISIZE,IPID,'#') .br;This sets up your program to share HBOOK histograms with TOPDRAWER. You should call this rather than HLIMIT. If ISTAT is .false. then there is an error and data will not be shared. If ISIZE exceeds 100000 not all hists will be available to Topdrawer. IPID is set to the PID (Program ID) of your process. It should not be messed with after the call to HBSHARE. .c;Sharing with another process. .i5;COMMON / /MEMORY(ISIZE) .i5;ISTAT=HBSHARE(ISIZE,PID,'process__name') .br;This sets up a program to share histograms with an already running program that is filling histograms. You must supply either the PID or the Process__name of the process to share with. You can not change the histograms. .s You must also link all programs that call HBSHARE with SYS_$UGSYS:HBSHARE.OPT. .s.c;^*Linking example\* $ LINK myprogram, - .i10;SYS_$UGSYS:HBSHARE.OPT/OPTION, - .i10;SYS_$UGSYS:TOPDRAWER, - .i10;SYS_$UGSYS:NUCLEUS, - .i10;SYS_$UGSYS:SIMPLEX+SYS_$UGSYS:DUPLEX, - .i10;SYS_$UGSYS:TEK4014+UGSIXEL+VEP12FF, - .i10;SYS_$UGSYS:OBJLIB/LIBRARY .qb changes The original sources were written by: .c text Roger B. Chaffee Computation Research Group Stanford Linear Accelerator Center Stanford, California .end center .s;Modified: .c;J. Clement - Mar 1896 .list 0 .le;SET COLOR - Now accepts full range of UGSYS color specs. .le;SET FILE - Command rewritten. It now accepts a file name and multiple nesting of SET FILE INPUT is possible. .le;Unit numbers modified to allow batch input. .le;SET DEVICE DDNAME=xxx - The limitation of 8 chars on xxx is removed. .le;SET DEVICE - INTERACTIVE is the default. .le;HELP - New command added. .le;Added prompting for interactive input. .le;PLOT__TERM, PLOT__DEVICE symbols are used to determine default device. .le;TOKEN - Tabs are treated as spaces. .le;SIXELS is now a legal device. .le;SET INPUT is a synonym of SET CARD. .le;SET ERRORS - New command added. .le;Fixed SET DEVICE command so SIDEWAYS works properly. .le;INTENSITY/WIDTH 3 did not work properly, and would cause other options to work improperly. .le;SET DEVICE accepts lowercase chars. in string. .le;SET STRUCTURE can now set FUNNY. .le;HISTOGRAM command now produces a BLOCK plot for 3-d data. .le;FLUSH command flushes the buffers. .LE;Fixed UG errors when no plot make. .le;Fixed failure to SET DEVICE in the middle of an interactive session. .le;Added JOURNAL file and SET JOURNAL command. .le;Added SHOW commands as mirror to SET commands. .le;Rewrote T23HST to add fast "LEGO" plots as well as minimal histograms. .le;TITLE X|Y|Z now produces titles next to 3-d axes. The lables and titles are always drawn on the outer side of axes by default. .le;T23HST,T23JIN accept a texture parameter. T23HST may plot hidden lines with the keyword HIDDEN. .le;T2FREQ modified for incomplete storage. Now only X,Y are required. .le;Modified TXDOT and TXTSYM to produce points directly from unified graphics. This makes better points for hi resolution displays, and faster points on Tek4010 displays. .le;T23PLT - added to do scatter plots. .le;SLICE - command added to plot slices of mesh data. .le;Fixed T2DEF2 so limits are properly defined at all times. .le;Added SET HIST command. This is conditionalized for the 3 different types of hist routines. You can get RICE format, and HBOOK format hist files to be displayed by TOPDRAWER. .le;SHOW DATA can show you a subset of the data, with calculations of statistics on the data. .le;3D is now properly selected for each type of hist. .le;DEFINE KEY - Defines keypad keys for ANSII terminals. .le;The previous 20 input lines are stored for recall by ANSII mode terms. This is done using SMG routines so foreign terminals can be defined also. .le;Traceback for input files has been added. .le;Modified TXLINE for optimized point plotting. Essentially drawing points with UGMARK is faster for some protocalls than drawing zero length lines. This is automatically done wherever possible. This is especially true for 4010 graphics. A cluster of Nearby dots can save a factor of 6 in transfer time. .le;Regularized the error messages, and added messages for PEN,WIDTH,CARD LENGTH out of range. .le;Added PERMANENT option to SET SYMBOL,GRID,WIDTH This changed the logic of SET SYMBOL slightly to conform to other commands. .le;The card length was changed to conform to standard screen sizes (80 cols). The Format string is (160A1) to make card size changes easy. .le;Fixed automatic flush so it works properly for interactive use. .le;Fixed NOVECTOR mode so that it works. Make the default VECTOR. Removed '$' as a separator. This is necessary for filenames! .els 0 .qb Author This documentation was extracted from: .i5;CGTM 178 - November 1980 .br;Written by: .nf.lm+5 Roger B. Chaffee Computation Research Group Stanford Linear Accelerator Center Stanford, California .s.lm;Extracted by: .lm+5 John Clement Bonner Nuclear Lab Rice University P.O. Box 1892 Houston, Tx, 77251 (713) 527-8101 x 2037 BITNET:BONNER@RICE .lm.f