Nom

contourf — courbes de niveaux 2D remplies d'une surface 3D

Séquence d'appel

contourf(x,y,z,nz,[style,strf,leg,rect,nax])

Paramètres

x,y

deux vecteurs lignes de taille n1 et n2.

z

matrice réelle de taille (n1,n2), les valeurs de la fonction.

nz

valeurs des niveaux ou nombre de niveaux

-

Si nz est un entier, sa valeur définit le nombre de courbes de niveaux espacées régulièrement entre zmin et zmax :

 
z= zmin + (1:nz)*(zmax-zmin)/(nz+1)
 

Noter que les niveaux zmin et zmax ne sont pas dessinés (génériquement ils sont réduits à des points) mais peuvent être ajoutés avec

 
[im,jm] = find(z == zmin);     // ou zmax 
plot2d(x(im)',y(jm)',-9,"000")
 
-

Si nz est un vecteur, nz(i) donne la valeur du ième niveau. Noter qu'il peut être utile pour voir les niveaux zmin et zmax d'ajouter une tolérance de l'ordre de %eps : nz=[ zmin+%eps,..,zmax-%eps].

style,strf,leg,rect,nax

voir plot2d. L'argument style définit les styles de pointillés ou les couleurs utilisés pour dessiner les courbes. Il doit être de même taille que le nombre de niveaux.

Description

contourf remplit l'espace entre deux courbes de niveaux consécutives d'une surface z=f(x,y) sur un dessin 2D. Les valeurs de f(x,y) sont données par la matrice z aux points du plan définis dans x et y.

Il est possible de changer le format des nombres affichés sur les courbes de niveau en utilisant xset("fpf",string)string précise le format comme en langage C (par exemple string="%.3f"). Utiliser string="" pour revenir au format par défaut.

Taper contourf() pour voir une démonstration de la fonction.

Exemples

 
contourf(1:10,1:10,rand(10,10),5,1:5,"011"," ",[0,0,11,11])

function z=peaks(x,y)
x1=x(:).*.ones(1,size(y,'*'));
y1=y(:)'.*.ones(size(x,'*'),1);
z =  (3*(1-x1).^2).*exp(-(x1.^2) - (y1+1).^2) ... 
   - 10*(x1/5 - x1.^3 - y1.^5).*exp(-x1.^2-y1.^2) ... 
   - 1/3*exp(-(x1+1).^2 - y1.^2) 
endfunction

function z=peakit()
x=-4:0.1:4;y=x;z=peaks(x,y);
endfunction

z=peakit();

levels=[-6:-1,-logspace(-5,0,10),logspace(-5,0,10),1:8];
m=size(levels,'*');
n = fix(3/8*m);
r = [(1:n)'/n; ones(m-n,1)];
g = [zeros(n,1); (1:n)'/n; ones(m-2*n,1)];
b = [zeros(2*n,1); (1:m-2*n)'/(m-2*n)];
h = [r g b];
xset('colormap',h);
xset('fpf',' ');
clf();
contourf([],[],z,[-6:-1,-logspace(-5,0,10),logspace(-5,0,10),1:8],0*ones(1,m))

xset('fpf','');
clf();
contourf([],[],z,[-6:-1,-logspace(-5,0,10),logspace(-5,0,10),1:8]);
 

Voir Aussi

contour, fcontour, fcontour2d, contour2di, plot2d, xset

Auteurs

J.Ph.C.