Scilab Function
Last update : April 1993
contour - level curves on a 3D surface
Calling Sequence
- contour(x,y,z,nz,[theta,alpha,leg,flag,ebox,zlev])
- contour(x,y,z,nz,<opt_args>)
Parameters
-
x,y: two real row vectors of size n1 and n2.
-
z: real matrix of size (n1,n2), the values of the function.
-
nz: the level values or the number of levels.
-
- If nz is an integer, its value gives the number of
level curves equally spaced from zmin to zmax as follows:
z= zmin + (1:nz)*(zmax-zmin)/(nz+1)
Note that the zmin and
zmax levels are not drawn (generically
they are reduced to points) but they can be added
with
[im,jm] = find(z == zmin); // or zmax
plot2d(x(im)',y(jm)',-9,"000")
-
- If nz is a vector,
nz(i) gives the value of the ith level
curve. Note that it can be useful in order to see
zmin and zmax level curves
to add an epsilon tolerance: nz=[
zmin+%eps,..,zmax-%eps].
-
<opt_args> : a sequence of statements key1=value1, key2=value2,
... where keys may be
theta,alpha,leg,
flag, ebox,zlev (see below). In
this case, the order has no special meaning.
-
theta, alpha: real values giving in degree the spherical coordinates of the observation point.
-
leg: string defining the captions for each axis with @ as a field separator, for example "X@Y@Z".
-
flag: a real vector of size three flag=[mode,type,box].
-
mode: string (treatment of hidden parts).
-
mode>0the hidden parts of the surface are removed and the surface is painted with color mode.
-
mode=0the hidden parts of the surface are drawn.
-
mode<0only the shadow of the surface is painted with color or pattern id
-mode. Use xset() to see the meaning of
the ids.
-
type: an integer (scaling).
-
type=0the plot is made using the current 3D scaling (set by a previous call to param3d, plot3d, contour or plot3d1).
-
type=1rescales automatically 3d boxes with extreme aspect ratios, the boundaries are specified by the value of the optional argument ebox.
-
type=2rescales automatically 3d boxes with extreme aspect ratios, the boundaries are computed using the given data.
-
type=33d isometric with box bounds given by optional ebox, similarily to type=1
-
type=43d isometric bounds derived from the data, to similarilytype=2
-
type=53d expanded isometric bounds with box bounds given by optional ebox, similarily to type=1
-
type=63d expanded isometric bounds derived from the data, similarily to
type=2
-
box: an integer (frame around the plot).
-
box=0nothing is drawn around the plot.
-
box=1unimplemented (like box=0).
-
box=2only the axes behind the surface are drawn.
-
box=3a box surrounding the surface is drawn and captions are added.
-
box=4a box surrounding the surface is drawn, captions and axes are added.
-
ebox: used when type in flag is 1. It specifies the boundaries of the plot as the vector [xmin,xmax,ymin,ymax,zmin,zmax].
-
zlev: real number.
Description
contour draws level curves of a surface z=f(x,y). The level curves are
drawn on a 3D surface. The optional arguments are the same as for the function
plot3d (except zlev) and their meanings are the same.
They control the drawing of level curves on a 3D plot.
Only flag(1)=mode has a special meaning.
-
mode=0: the level curves are drawn on the surface defined by (x,y,z).
-
mode=1: the level curves are drawn on a 3D plot and on the plan defined by the equation z=zlev.
-
mode=2: the level curves are drawn on a 2D plot.
You can change the format of the floating point number printed on the levels
by using xset("fpf",string) where string gives the
format in C format syntax (for example string="%.3f"). Use
string="" to switch back to default format and Use
string=" " to suppress printing.
Usually we use contour2d to draw levels curves on a 2D plot.
Enter the command contour() to see a demo.
Examples
t=%pi*[-10:10]/10;
deff("[z]=surf(x,y)","z=sin(x)*cos(y)"); z=feval(t,t,surf);
rect=[-%pi,%pi,-%pi,%pi,-1,1];
contour(t,t,z,10,35,45," ",[0,1,0],rect)
// changing the format of the printing of the levels
xset("fpf","%.2f")
xbasc()
contour(t,t,z,10,flag=[0,1,0],ebox=rect)
See Also
contour2d, fcontour, fcontour2d, plot3d, xset,
Author
J.Ph.C.