smooth 2D plot of a surface using colors
Sgrayplot(x,y,z,<opt_args>)
Sgrayplot(x,y,z [,strf, rect, nax, zminmax, colminmax, mesh, colout])
:x,y real row vectors of size n1 and n2. : :z real matrix of size (n1,n2). z(i,j) is the value of the surface
at the point (x(i),y(j)).
:x=0 no caption. : :x=1 captions are displayed. They are given by the optional argument
leg.
:
: :y controls the computation of the actual coordinate ranges from the minimal requested values. Actual ranges can be larger than minimal requirements.
:y=0 no computation, the plot use the previus (or default) scale : :y=1 from the rect arg : :y=2 from the min/max of the x, y data : :y=3 built for an isometric scale from the rect arg : :y=4 built for an isometric plot from the min/max of the x, y data : :y=5 enlarged for pretty axes from the rect arg : :y=6 enlarged for pretty axes from the min/max of the x, y data : :y=7 like y=1 but the previus plot(s) are redrawn to use the new
scale
- : :y=8 like y=2 but the previus plot(s) are redrawn to use the new
- scale
:
: :z controls the display of information on the frame around the plot. If axes are requested, the number of tics can be specified by the nax optional argument.
:z=0 nothing is drawn around the plot. : :z=1 axes are drawn, the y=axis is displayed on the left. : :z=2 the plot is surrounded by a box without tics. : :z=3 axes are drawn, the y=axis is displayed on the right. : :z=4 axes are drawn centred in the middle of the frame box, with the
box disabled.
- : :z=5 axes are drawn centred in the middle of the frame box, with the
- box enabled.
:
:
: :zminmax, colminmax, mesh, colout See fec. :
Sgrayplot is the same as grayplot but the plot is smoothed. The function fec is used for smoothing. The surface is plotted assuming that it is linear on a set of triangles built from the grid (here with n1=5, n2=3):
_____________
| /| /| /| /|
|/`_`_|/`_`_|/`_`_|/`_`_|
| /| /| /| /|
|/`_`_|/`_`_|/`_`_|/`_`_|
The function colorbar may be used to see the color scale.
The parameter zminmax is useful for animation purpose (see an example after) and the parameter colminmax lets the user choose a part of the current colormap (see the fec help page).
Enter the command Sgrayplot() to see a demo.
// example #1
x=-10:10; y=-10:10;m =`rand`_(21,21);
`clf`_()
`xset`_("colormap",`hotcolormap`_(64))
Sgrayplot(x,y,m, strf="011", rect=[-20,-20,20,20])
// example #2
t=-%pi:0.1:%pi; m=`sin`_(t)'*`cos`_(t);
`clf`_()
`xset`_("colormap",`jetcolormap`_(64))
`colorbar`_(-1,1)
Sgrayplot(t,t,m, strf="041")
// example #3: an animation display cos(t)*sin(x)sin(y).
n = 30;
nt = 100;
x = `linspace`_(0,2*%pi,n);
y = `linspace`_(0,%pi,n/2);
z = `sin`_(x')*`sin`_(y);
t = `linspace`_(0,4*%pi,nt);
`show_window`_(); `clf`_()
f=`gcf`_();
f.color_map=`jetcolormap`_(64);
f.pixmap='on';
`colorbar`_(-1,1)
Sgrayplot(x,y,`cos`_(t(1))*z, strf="042", zminmax=[-1,1])
c=`gce`_(),e=c.children
`xtitle`_("Kaa''s eyes")
for i = 1:nt
e.data(:,3)=`matrix`_(`cos`_(t(i))*z,-1,1);
`show_pixmap`_()
end
f.pixmap='off';