This directory holds a software package, EZXPLOT, written by Paul Parker and updated by Peter Shearer.
I have added a few subroutines as well for easy plotting.
Cheers,
-Jesse
The following documentation is from Peter Shearer's web site:
EZXPLOT Fortran Xlib plotting routines
EXZPLOT subroutines are designed to perform simple plotting on Sun workstations. They simulate micro-computer graphics and are designed to allow plotting in the simplest mannner possible. They use the X-windows subroutines written by Paul Parker (LeoLib).
To use these subroutines, link your program with:
~shearer/PLOT/X/ezxplotlib.a (ezxplotlib_f90.a for F90 programs)
~shearer/PLOT/X/PAUL/LeoLib.0.9b/leolib.a (Solaris version)
~shearer/PLOT/X also contains the EZXPLOT source code and a program, testezxplot, which runs these routines. The Makefile in this directory will compile and link this program"
NOTES:
(1) Note that the arguments in EZXAXES are changed from the GKS
version (EZPLOT) to make them compatible with the PSPLOT routines.
(2) EZXDUMP is a simple bitmap dump of the screen. Thus, it does not have the resolution of Postscript files with direct move and draw commands.
Please report bugs to: Peter Shearer
- pshearer@ucsd.edu
LIST OF SUBROUTINES
EZXANG(ang) sets the angle for drawing text.
- Input: ang = angle of text (degrees c.w. from horiz.)
= 0. for normal (left to right)
= 90. for up
= 180. for right to left (upside down)
= 270. for down
Notes: ang is a real variable.
diagonal angles are possible.
EZXAXES(xtic,xlab,nxtic,xfrmt,ytic,ylab,nytic,yfrmt) makes a frame
- with tics and tic labels as specified. The position of the
frame is assumed to be defined by the corners set in EZXWIND.
xtic = small tic increment in user coordinates
ylab = numbered tic increment (length is 2*nxtic)
nxtic = small tic length in pixels
xfrmt = format for x-axis numbers (see EZXNUMB for format details)
etc. for y
Note: Don't make tic increments negative even for reversed scale plots. EZXAXES should figure it out correctly.
EZXCIR(x,y,irad,icol,ifill) draws circle of specified color
- x,y = user coordinates of center
irad = radius in pixels
icol = color, 0=wht,1=blk,2=red,3=blu,4=yel,5=grn,6=brw,7=pur,8=cyn,9=mag
ifill = 0 for no fill, =1 for fill
EZXCLR clears the entire window but does not quit the window.
EZXCLRB(x1,x2,y1,y2) erases the screen in a box defined by x1,x2,y1,y2 in user coordinates.
EZXCOL(icol) set current plotting color
- 0=white, 1 =black, 2=red, 3=blue, 4=yellow, 5=green, 6=brown
7=purple, 8=cyan, 9=magenta
EZXDIG(x,y,ibut) returns the mouse position when a mouse button is hit
- Returns: x,y = coordinates of mouse (user coordinates)
- = 4,5,6 when shift key is depressed
ibut = 1,2,3 for three mouse buttons
EZXDRAW(x,y) draws a line from the current pen position to (x,y) and updates pen position (in user units as defined by EZXWIND).
EZXDUMP(postfile) creates a Postscript file of current plot
- Input: postfile = file name for Postscript file
EZXFRAM(x1,x2,y1,y2) draws a box with lower left corner (x1,y1) and upper right corner (x2,y2) in user coordinates.
EZXINIT(nx,ny) creates an X-window for plotting
- Inputs: nx = number of x pixels in window
- ny = number of y pixels in window Note: A convenient setting for most Sun screens is (1138,800)
EZXLAB(text) plots the string 'text' at the current pen position
in a way determined by the current LORG setting.
EZXLAX(xlabel,nx,ylabel,ny) puts x and y axis labels on axes.
- xlabel = x-axis label (string)
nx = offset in pixels from bottom of axes
ylabel = y-axis label (string)
ny = offset in pixels from left of axes
EZXLINE(iwid,idash) defines line width and dash length
- iwid = line width in pixels
- = 0 for thinnest, fastest line idash = dash length in pixels
- = 0 for solid line
EZXLOADFONT(i,fontname) loads font and assigns index number.
- Input: fontname = fontname (e.g. '9x15' or '9x15bold')
Returns: i = index for use by EZXSETFONT
EZXLORG(n) allows the user to specify how text or numbers will be
- centered around the current pen position. This will affect
EZXLAB and EZXNUM.
- 7 ... 8 ... 9
n =- 4 ... 5 ... 6 centers block as shown
- 1 ... 2 ... 3
EZXMESS(text) displays text at bottom of window after erasing to make space.
EZXMOVE(x,y) makes (x,y) the current pen position (in user units as defined by EZXWIND) but does not draw a line.
EZXNICE(xmin,xmax,x1,x2) finds reasonable tic intervals for use by EZXAXES
- Inputs: xmin,xmax = lower and upper limits of plot
Returns: x1 = small tic increment
- x2 = big tic increment
EZXNUM(fnum,frmt) plots the real number EZXPOLY(x,y,n) draws a polygon connecting n points
contained in arrays x and y.
EZXSETFONT(i) set font using index number defined by EZXLOADFONT
i = font index
EZXSYMB(n,npix) plots symbols of height 2*npix at the
current pen position.
EZXTIC(nx,ny,nup) draws a line (or merely moves) from the
current pen position to a position nx pixels to the right
and ny pixels up.
EZXWIND(x1,x2,y1,y2,x3,x4,y3,y4) defines a user scale for plotting
which is used by most of the other EZXPLOT subroutines.
(x1,y1) and (x2,y2) define the lower left and upper right
corner of the plot area on the screen in pixels.
(x3,y3) and (x4,y4) define the corresponding values at
these points for the user scale. All other points will
be linearly interpolated using these values.
Note: EZXWIND and all EZXPLOT subroutines assume that the
y scale is from bottom.
EZXQUIT exits from the X-window after user hits mouse select key.
Note: fnum must be passed to EZXNUM as a real number. However
note that it can be plotted as an integer by using an
I format.
Note: For big plots EZXPOLY is faster than using
a series of EZXDRAW commands.
n=1 -- +
n=2 -- square
n=3 -- triangle
n=4 -- inverted triangle
n=5 -- X
n=6 -- diamond
nup = 0 -- move without drawing line
nup = 1 -- draw line
EZXTIC is useful for drawing tic marks and adjusting label
postions on plots when absolute (pixel) motions are desired,
since user units (defined by EZXWIND) are not used.
Note: nx,ny can be negative.
