---
name: "psxyz"
section: "1"
platform: "linux"
package: "gmt-manpages"
version: "3.4-1"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/psxyz"
---

# psxyz(1)

Plot lines, polygons, and symbols in 3-D

## NAME

psxyz - Plot lines, polygons, and symbols in 3-D

## SYNOPSIS

**psxyz** *files* **-J***parameters* **-R***west/east/south/north/zmin/zmax***\[r\]** **\[ -B***tickinfo* **\] \[ -C***cptfile* **\] \[ -E***azimuth/elevation* **\]** **\[ -G***fill* **\] \[ -H\[***nrec***\] \] \[ -K \] \[ -L \] \[ -M\[***flag***\] \]** **\[ -N \] \[ -O \] \[ -P \] \[ -S\[***symbol***\]\[***size***\] \] \[ -U\[***/dx/dy/***\]\[***label***\] \]** **\[ -V \] \[ -W\[***pen***\] \]** **\[ -X***x-shift* **\] \[ -Y***y-shift* **\] \[ -Z***zlevel* **\] \[ -: \] \[ -c***copies* **\]** **\[ -bi\[s\]\[***n***\] \]**

## DESCRIPTION

**psxyz reads (x,y,z) triplets from** *files* **\[or standard input\] and** **generates** *PostScript* **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. Symbols whose size is \<= 0 are skipped. If no symbols are specified then the symbol code (see -S below)** **must be present as last column in the input. Multiple segment files may be plotted using the -M option.** **If no symbols are selected, a line will be drawn. To explicitly close polygons, use -L. Select a shade with -G. If -G is set, -W** **will control whether the polygon outline is drawn or not. If a symbol is selected, -G and** **-W determines the fill color and outline/no outline, respectively.** **The** *PostScript* **code is written to standard output.**

- *files*

  **List one or more file-names. If no files are given, psxyz will read standard input.**

- **-J**

  **Selects the map projection. Scale is UNIT/degree, 1:xxxxx, or width in UNIT (upper case modifier).** **UNIT is cm, inch, or m, depending on the MEASURE\_UNIT setting in .gmtdefaults, but this can be** **overridden on the command line by appending the c, i, or m to the scale/width value.**\

  **CYLINDRICAL PROJECTIONS:**\

  **-Jc***lon0/lat0/scale* **(Cassini)**\
   **-Jj***lon0/scale* **(Miller)**\
   **-Jm***scale* **(Mercator - Greenwich and Equator as origin)**\
   **-Jm***lon0/lat0/scale* **(Mercator - Give meridian and standard parallel)**\
   **-Joa***lon0/lat0/azimuth/scale* **(Oblique Mercator - point and azimuth)**\
   **-Job***lon0/lat0/lon1/lat1/scale* **(Oblique Mercator - two points)**\
   **-Joc***lon0/lat0/lonp/latp/scale* **(Oblique Mercator - point and pole)**\
   **-Jq***lon0/scale* **(Equidistant Cylindrical Projection (Plate Carree))**\
   **-Jt***lon0/scale* **(TM - Transverse Mercator, with Equator as y = 0)**\
   **-Jt***lon0/lat0/scale* **(TM - Transverse Mercator, set origin)**\
   **-Ju***zone/scale* **(UTM - Universal Transverse Mercator)**\
   **-Jy***lon0/lats/scale* **(Basic Cylindrical Projection)**\

  **AZIMUTHAL PROJECTIONS:**\

  **-Ja***lon0/lat0/scale* **(Lambert).**\
   **-Je***lon0/lat0/scale* **(Equidistant).**\
   **-Jf***lon0/lat0/horizon/scale* **(Gnomonic).**\
   **-Jg***lon0/lat0/scale* **(Orthographic).**\
   **-Js***lon0/lat0/***\[***slat/***\]***scale* **(General Stereographic)**\

  **CONIC PROJECTIONS:**\

  **-Jb***lon0/lat0/lat1/lat2/scale* **(Albers)**\
   **-Jd***lon0/lat0/lat1/lat2/scale* **(Equidistant)**\
   **-Jl***lon0/lat0/lat1/lat2/scale* **(Lambert)**\

  **MISCELLANEOUS PROJECTIONS:**\

  **-Jh***lon0/scale* **(Hammer)**\
   **-Ji***lon0/scale* **(Sinusoidal)**\
   **-Jk\[f\|s\]***lon0/scale* **(Eckert IV (f) and VI (s))**\
   **-Jn***lon0/scale* **(Robinson)**\
   **-Jr***lon0/scale* **(Winkel Tripel)**\
   **-Jv***lon0/scale* **(Van der Grinten)**\
   **-Jw***lon0/scale* **(Mollweide)**\

  **NON-GEOGRAPHICAL PROJECTIONS:**\

  **-Jp\[a\]***scale***\[***/origin***\] (polar (theta,r) coordinates, optional a for azimuths and offset theta \[0\])**\
   **-Jx***x-scale***\[l\|p***pow***\]\[***/y-scale***\[l\|p***pow***\]\] (Linear, log, and power scaling)**\
   **More details can be found in the psbasemap manpages.**\

- **-Jz**

  **Sets the vertical scaling (for 3-D maps). Same syntax as -Jx.**

- **-R**

  *west, east, south,* **and** *north* **specify the Region of interest. To specify boundaries** **in degrees and minutes \[and seconds\], use the dd:mm\[:ss\] format. Append r if lower left and upper right** **map coordinates are given instead of wesn.**

## OPTIONS

**No space between the option flag and the associated arguments.**

- **-B**

  **Sets map boundary tickmark intervals. See psbasemap for details.**

- **-C**

  **Give a color palette file. If -S is set, let symbol color be determined by the t-value in** **the fourth column. Additional** **fields are shifted over by one column (optional size would be in 5th rather than** **4th field, etc.).** **If -S is not set, then psxyz expects a multisegment polygon file (requires -M) where each segment header contains a -Z***val* **string. The** *val* **controls** **the polygon color via the cpt file.**

- **-E**

  **Sets the viewpoint's azimuth and elevation \[180/90\].'**

- **-G**

  **Select filling of polygons and symbols.** **Append the shade (0-255), color (r/g/b), or P\|p***dpi***/***pattern* **(polygons only) \[Default is no fill\].** **Note when -M is chosen,** *psxyz* **will search for -G and** **-W strings in all the subheaders and let any found values over-ride the command line settings.**

- **-H**

  **Input file(s) has Header record(s). Number of header records can be changed by editing** **your .gmtdefaults file. If used, GMT default is 1 header record.**

- **-K**

  **More** *PostScript* **code will be appended later \[Default terminates the plot system\].**

- **-L**

  **Force closed polygons: will connect the endpoints of the line-sement(s) and draw polygons.**

- **-M**

  **Multiple segment file. Segments are separated by a record whose first character is** *flag***.** **\[Default is '\>'\].**

- **-N**

  **Do NOT skip symbols that fall outside map border \[Default plots points inside border only\].**

- **-O**

  **Selects Overlay plot mode \[Default initializes a new plot system\].**

- **-P**

  **Selects Portrait plotting mode \[GMT Default is Landscape, see gmtdefaults to change this\].**

- **-S**

  **Plot symbols.** *size* **is symbol size in the unit set in .gmtdefaults** **(unless c, i, m, or p is appended). The uppercase symbols** **A, C, D, H, I, S, T are normalized to have the same area as a circle of given size,** **while the corresponding lowercase symbols are circumscribed by the circle.** **Choose between:**

- **-S**

  **Read symbol code (see below) from last column in the input data. Cannot be used in** **conjunction with -b. Optionally, append c, i, m, p to** **indicate that the size information in the input data is in units of cm, inch, meter,** **or point, respectively. \[Default is MEASURE\_UNIT\].**

- **-Sa**

  **star.** *size* **is diameter of circumscribing circle.**

- **-Sb**

  **(b)ar extending from** *base* **to y.** *size* **is bar width. Append u** **if** *size* **is in x-units \[Default is plot-distance units\]. By default,** *base* **= 0. Append b***base* **to change this value.**

- **-Sc**

  **(c)ircle.** *size* **is diameter of circle.**

- **-Sd**

  **(d)iamond.** *size* **is diameter of circumscribing circle.**

- **-Se**

  **ellipse. Direction (in degrees counterclockwise from horizontal), major\_axis, and minor\_axis must be found in columns 4, 5, and 6.**

- **-SE**

  **Same as -Se, except azimuth (in degrees east of north) should be given instead of direction. The azimuth will** **be mapped into an angle based on the chosen map projection (-Se leaves the directions** **unchanged.) Furthermore, the axes lengths must be given in km instead of plot-distance units.**

- **-Sf**

  **front. -Sf***gap/size***\[***dir***\]\[***type***\]\[:***offset***\]. Supply distance gap between symbols and symbol size.** **If** *gap* **is negative, it is interpreted to mean the number of symbols along the front instead. Append** *dir* **to plot symbols** **on the left or right side of the front \[Default is centered\]. Append** *type* **to specify which symbol** **to plot: box, circle, fault, slip, or triangle. \[Default is fault\].** **Slip means left-lateral or right-lateral strike-slip arrows (centered is not an option). Append :***offset* **to offset** **the first symbol from the beginning of the front by that amount \[0\].**

- **-Sh**

  **hexagon.** *size* **is diameter of circumscribing circle.**

- **-Si**

  **inverted triangle.** *size* **is diameter of circumscribing circle.**

- **-Sl**

  **letter or text string (less than 64 characters). Give size, and append /***string* **after the size. Note that the size is only approximate; no individual scaling** **is done for different characters. Remember to escape special characters like \*. Optionally, you may append %***font* **to select a particular font \[Default is ANOT\_FONT\].**

- **-So**

  **c(o)lumn (3-D) extending from** *base* **to z.** *size* **sets base width (Use** *xsize/ysize* **if not the same). Append u if** *size* **is in x-units** **\[Default is plot-distance units\]. By default,** *base* **= 0. Append b***base* **to change this value.**

- **-Sp**

  **(p)oint. No size needs to be specified.**

- **-Ss**

  **(s)quare.** *size* **is diameter of circumscribing circle.**

- **-St**

  **(t)riangle.** *size* **is diameter of circumscribing circle.**

- **-Su**

  **c(u)be (3-D).** *size* **sets length of all sides. Append u if** *size* **is in x-units \[Default is plot-distance units\].**

- **-Sv**

  **(v)ector. Direction and length must be found in columns 4 and 5.** *size* **means** *arrowwidth/headlength/headwidth* **in \[\[Default is 0.075c/0.3c/0.25c (or 0.03i/0.12i/0.1i)\].** **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***norm***, where vectors shorter than** *norm* **will have their** **attributes scaled by length/***norm***.**

- **-SV**

  **Same as -Sv, except azimuth should be given instead of direction. The azimuth will** **be mapped into an angle based on the chosen map projection (-Sv leaves the directions** **unchanged.)**

- **-Sw**

  **pie wedge. Start and stop directions (in degrees counter-clockwise from horizontal) for pie slice** **must be found in columns 4 and 5.**

- **-Sx**

  **(x)cross.** *size* **is diameter of circumscribing circle.**\

- **-U**

  **Draw Unix System time stamp on plot. User may specify where the lower left corner** **of the stamp should fall on the page relative to lower left corner of plot. Optionally,** **append a label, or c (which will plot the command string.). The GMT parameters** **UNIX\_TIME and UNIX\_TIME\_POS can affect the appearance; see the gmtdefaults man** **page for details.**

- **-V**

  **Selects verbose mode, which will send progress reports to stderr \[Default runs "silently"\].**

- **-W**

  **Set pen attributes. \[Defaults: width = 1, color = 0/0/0, texture = solid\].** **Implicitly draws the outline of symbol with selected pen.**

- **-X -Y**

  **Shift origin of plot by (***x-shift,y-shift***).** **Prepend a for absolute coordinates;** **the default (r) will reset plot origin.**

- **-Z**

  **For 3-D projections: Sets the z-level of the basemap \[0\].**

- **-:**

  **Toggles between (longitude,latitude) and (latitude,longitude) input/output. \[Default is (longitude,latitude)\].** **Applies to geographic coordinates only.**

- **-c**

  **Specifies the number of plot copies. \[Default is 1\]**

- **-bi**

  **Selects binary input. Append s for single precision \[Default is double\].** **Append** *n* **for the number of columns in the binary file(s).** **\[Default is the required number of columns given the settings\].**

## EXAMPLES

**To plot blue columns (width = 1.25 cm) 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:**\

**psxyz heights.xyz -R0/10/0/10/0/100 -Jx1.25c -Jz0.125c -So1.25c** **-G0/0/255 -B2:XLABEL:/2:YLABEL:/10:ZLABEL::."3-D PLOT":15 -E135/30 -Uc** **-W -P \> heights.ps**

## 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.**\
 **psxyz cannot handle filling of polygons that contain the south or north pole. For such a polygon,** **make a copy and split it into two and make each explicitly contain the polar point. The two polygons** **will combine to give the desired effect when filled; to draw outline use the original polygon.**\
 **The -N option does not adjust the BoundingBox information so you may** **have to post-process the PostScript outout with epstool or ps2epsi to obtain** **a correct BoundingBox.**

## SEE ALSO

*gmt*(l), *psbasemap*(l), *psxy*(l)
