SURFACE Procedure

Draws the surface of a two-dimensional array with hidden lines removed.

Usage

SURFACE, z [, x, y]

Input Parameters

z—A two-dimensional array containing the values that make up the surface. If x and y are supplied, the surface is plotted as a function of the X,Y locations specified by their contents. Otherwise, the surface is generated as a function of the array index of each element of z.

x—(optional) A vector or two-dimensional array specifying the x-coordinates for the surface.

If x is a vector, each element of x specifies the x-coordinate for a column of z. For example, x(0) specifies the x-coordinate for z(0, *).

If x is a two-dimensional array, each element of x specifies the x-coordinate of the corresponding point in z (xij specifies the x-coordinate for zij).

y—(optional) A vector or two-dimensional array specifying the y-coordinates for the surface.

If y is a vector, each element of y specifies the y-coordinate for a row of z. For example, y(0) specifies the y-coordinate for z (*, 0).

If y is a two-dimensional array, each element of y specifies the y-coordinate of the corresponding point in z (yij specifies the y-coordinate for zij).

Keywords

Keywords let you control many aspects of the plot’s appearance. SURFACE keywords are listed below. For a description of each keyword, see Graphics and Plotting Keywords.

Ax Noclip [XYZ]Gridstyle
Az Nodata [XYZ]Margin
Background Noerase [XYZ]Minor
Bottom Normal [XYZ]Range
Channel Position [XYZ]Style
Charsize Save [XYZ]Thick
Charthick Skirt [XYZ]Tickformat
Clip Subtitle [XYZ]Ticklen
Color T3d [XYZ]Tickname
Data Thick [XYZ]Ticks
Device Tickformat [XYZ]Tickv
Font Ticklen [XYZ]Title
Horizontal Title YLabelCenter
Linestyle Upper_Only ZAxis
Lower_Only [XYZ]Charsize ZValue

Discussion

Note the following restrictions on the use of SURFACE. If the X,Y grid is not regular or nearly regular, errors in hidden line removal will occur.

If T3D is set, the 3D to 2D transformation matrix contained in !P.T must project the Z axis to a line parallel to the device Y axis, or errors will occur.

Example

This example displays the surface described by the function:

where:

The results are shown in Surface with Title.

; Create vector of x- and y-coordinates.
x = FINDGEN(101)/5-10
y = x
; Create an array to hold the function values.
z = FLTARR(101, 101)
; Evaluate the function at the given x- and y-coordinates and
; place the result in z.
FOR i=0L, 100 DO FOR j=0L, 100 DO z(i, j) = x(i) * SIN(y(j)) + y(j) * COS(x(i))
; Display surface. The Ax keyword is used to specify angle of
; rotation about the x-axis. The XCharsize, YCharsize, and 
; ZCharsize keywords are used to enlarge the characters used 
; to annotate the axes.
SURFACE, z, x, y, Ax = 50, XCharsize = 2, YCharsize = 2, $
   ZCharsize = 2
; Place a title on the window. Note that the CURSOR procedure
; with Device keyword was used to locate the proper position
; for the title.
XYOUTS, 163, 477, "f(x, y) = x*sin(y) + y*cos(x)", $
   Charsize = 2, /Device

Surface with Title

See Also

SHADE_SURF, SHADE_SURF_IRR, SURFACE_FIT, SURFR, T3D, THREED

System Variables:  !P.T

For more information, see the PV‑WAVE Programmer’s Guide.