contourf — courbes de niveaux 2D remplies d'une surface 3D
contourf(x,y,z,nz,[style,strf,leg,rect,nax])
deux vecteurs lignes de taille n1 et n2.
matrice réelle de taille (n1,n2), les valeurs de la fonction.
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]
.
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.
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)
où
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.
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]);