.TH PSXYZ l DATE
#ifdef SI
#define UNIT cm
#define PARAMS 0.075/0.3/0.25
#define LEN_1 1.25
#define LEN_2 5
#define OPT_1	\fB\-Jx\fP1.25 \fB\-Jz\fP0.125 \fB\-So\fP1.25
#else
#define UNIT inch
#define PARAMS 0.03/0.12/0.1
#define LEN_1 0.5
#define LEN_2 2
#define OPT_1	\fB\-Jx\fP0.5 \fB\-Jz\fP0.05 \fB\-So\fP0.5
#endif
.SH NAME
psxyz \- Plot lines, polygons, and symbols in 3-D
.SH SYNOPSIS
\fBpsxyz\fB \fIfiles\fP \fB\-J\fP\fIparameters\fP \fB\-R\fIwest/east/south/north/zmin/zmax\fP[\fIr\fP] 
[ \fB\-B\fP\fItickinfo\fP ] [ \fB\-C\fP\fIcptfile\fP ] [ \fB\-E\fP\fIazimuth/elevation\fP ] [ \fB\-F\fP\fIred/green/blue\fP ] 
[ \fB\-G\fP\fIfill\fP ] [ \fB\-H\fP ] [ \fB\-K\fP ] [ \fB\-L\fP ] [ \fB\-M\fP[\fIflag\fP] ] 
[ \fB\-N\fP ] [ \fB\-O\fP ] [ \fB\-P\fP ] [ \fB\-S\fP\fIsymbol/size\fP ] [ \fB\-U\fP[\fI/dx/dy/\fP][\fIlabel\fP] ] 
[ \fB\-V\fP ] [ \fB\-W\fP\fIpen\fP ] 
[ \fB\-X\fP\fIx-shift\fP ] [ \fB\-Y\fP\fIy-shift\fP ] [ \fB\-Z\fP\fIzlevel\fP ] [ \fB\-:\fP ] [ \fB\-c\fP\fIcopies\fP ]
.SH DESCRIPTION
\fBpsxyz\fP reads (x,y,z) triplets from \fIfiles\fP [or standard input] and
generates \fIPostScript\fP code that will plot lines, polygons, or symbols at those locations in 3-D.
If a symbol is selected and no symbol size given, then psxyz will interpret the fourth column of the
input data as symbol size in UNIT.  Multiple segment files may be plotted using the \fB\-M\fP option.
If no symbols are selected, a line will be drawn.  To draw closed polygons, use \fB\-L\fP.  Select a shade with \fB\-G\fP.  If \fB\-G\fP is set, \fB\-L\fP
will control whether the polygon outline is drawn or not.  If a symbol is selected, \fB\-G\fP and
\fB\-L\fP determines the fill color and outline/no outline, respectively.
The \fIPostScript\fP code is written to standard output. 
.TP
\fIfiles\fP
List one or more file-names. If no files are given, \fBpsxyz\fP will read standard input.
#include "explain_-j.txt"
#include "explain_-Jz.txt"
#include "explain_-R.txt"
.SH OPTIONS
No space between the option flag and the associated arguments.
#include "explain_-b.txt"
.TP
.B \-C
Give a color palette file and let symbol color be determined by the t-value in
the fourth column.  Must be used with \fB\-S\fP.  If used, then additional
fields are shifted over by one column (optional size would be in 5th rather than
4th field, etc.).
.TP
.B \-E
Sets the viewpoint's azimuth and elevation [180/90].
.TP
.B \-F
Sets the color used for Frame and annotation. [Default is 0/0/0 (black)]
.TP
.B \-G
Fill color.  Set the shade (0\-255) or color (r/g/b) [Default is no fill].
#include "explain_-H.txt"
#include "explain_-K.txt"
.TP
.B \-L
If a symbol is selected, \fB\-L\fP will draw the symbol outline using current pen (see \fB\-W\fP).  If no symbols are selected, \fB\-L\fP will connect the endpoints of the line-sement(s) and draw polygons.
.TP
.B \-M
Multiple segment file.  Segments are separated by a record whose first character is \fIflag\fP.
[Default is '>'].
.TP 
.B \-N 
Do NOT skip symbols that fall outside map border [Default plots points inside border only]. 
#include "explain_-O.txt"
#include "explain_-P.txt"
.TP
.B \-S
Plot symbols.  \fIsize\fP is symbol size in UNIT.  Choose between:
.TP
.B \-Sb
(\fBb\fP)ar extending from \fIbase\fP to y.  \fIsize\fP is bar width.  By default,
\fIbase\fP = 0.  Append b\fIbase\fP to change this value.
.TP
.B \-Sc
(\fBc\fP)ircle.  \fIsize\fP is diameter of circle.
.TP
.B \-Sd
(\fBd\fP)iamond.  \fIsize\fP is side of diamond.
.TP
.B \-So
c(\fBo\fP)lumn (3-D) extending from \fIbase\fP to z.  \fIsize\fP sets base width (Use \fIxsize/ysize\fP if not the same).  By default,
\fIbase\fP = 0.  Append b\fIbase\fP to change this value.
.TP
.B \-Sp
(\fBp\fP)oint.  No size needs to be specified.
.TP
.B \-Ss
(\fBs\fP)quare.  Give side in UNIT.
.TP
.B \-St
(\fBt\fP)riangle.  Give side in UNIT.
.TP
.B \-Su
c(\fBu\fP)be (3-D).  \fIsize\fP sets length of all sides in UNIT.
.TP
.B \-Sv
(\fBv\fP)ector.  Direction and length (in UNIT) must be found in columns 4 and 5.
\fIsize\fP means \fIarrowwidth/headlength/headwidth\fP in (UNIT) [[Default is PARAMS UNIT].
By default arrow attributes remains invariant to the length
of the arrow.  To have the size of the vector scale down with decreasing size,
append n\fPnorm\fP, where vectors shorter than \fInorm\fP will have their
attributes scaled by length/\fInorm\fP.
.TP
.B \-SV
Same as \fB\-Sv\fP, except azimuth should be given instead of direction.  The azimuth will
be mapped into an angle based on the chosen map projection (\fB\-Sv\fP leaves the directions
unchanged.)
.TP
.B \-Sx
(\fBx\fP)cross. Give length in UNIT.
.br
#include "explain_-U.txt"
#include "explain_-V.txt"
.TP
.B \-W
Set pen attributes.  [Defaults: width = 1, color = 0/0/0, texture = solid]
#include "explain_-XY.txt"
.TP
.B \-Z
For 3-D projections:  Sets the z-level of the basemap [0].
#include "explain_-t.txt"
#include "explain_-c.txt"
.SH EXAMPLES
To plot blue columns (width = LEN_1 UNIT) at the positions listed in the file heights.xyz on a
3-D projection of the space (0\-10), (0\-10), (0\-100),  with tickmarks every 2, 2, and 10,
viewing it from the southeast at 30 degree elevation, try:
.br
.sp
psxyz heights.xyz \fB\-R\fP0/10/0/10/0/100 OPT_1
\fB\-G\fP0/0/255 \fB\-B\fP2:XLABEL:/2:YLABEL:/10:ZLABEL::."3-D PLOT":15 \fB\-E\fP135/30 \fB\-U\fPc
\fB\-L\fP \fB\-P\fP > heights.ps
.SH BUGS
No hidden line removal is employed for polygons and lines.  Symbols, however, are first sorted
according to their distance from the viewpoint so that nearby symbols will overprint more distant
ones should they project to the same x,y position.
.br
Header must be plotted separately using pstext.
.SH SEE ALSO
gmt, psbasemap, psxy
#include "refs.i"
