plot2d3
permet de représenter des
diagrammes en bâtons et a déjà été utilisée.
La fonction histplot
représente des histogrammes.
Son premier paramètre peut être un entier (nombre
de classes), auquel cas l'histogramme est régulier,
ou un vecteur donnant les bornes des classes.
x=rand(1,1000); xbasc() histplot(10,x) xbasc() histplot([0,0.2,0.5,0.6,0.9,1],x) y=grand(x,"exp",1); xbasc() histplot(10,y) xbasc() histplot(-log([1:-0.1:0.01]),y)Pour représenter un nuage de points dans le plan, on peut utiliser
plot2d
avec un style de
représentation négatif ou nul. La fonction hist3d
représente des histogrammes dans
IR mais
n'effectue pas le calcul des fréquences de classes.
Pour cela, on pourra utiliser la fonction freq2d
définie ci-dessous. Elle prend en entrée deux
vecteurs de bornes, bornex
et borney
,
et une matrice echant
, à 2 lignes et
colonnes.
function f = freq2d(echant,bornex,borney) // freq2d retourne une matrice dont les // coefficients sont les frequences de echant // relatives a bornex et borney kx = size(bornex,"*")-1; ky = size(borney,"*")-1; for i=1:kx, for j=1:ky, f(i,j) = size(find(.. echant(1,:) > bornex(i) &.. echant(1,:) <= bornex(i+1) &.. echant(2,:) > borney(j) &.. echant(2,:) <= borney(j+1)),"*"); end; end; f=f/sum(f);Cette fonction sera sauvée dans le fichier
freq2d.sci
.
La fonction hist3d
prend en entrée une
liste formée de la matrice des fréquences, retournée par
freq2d
, et des deux
vecteurs de bornes. Voici quelques exemples d'utilisation.
getf("freq2d.sci") u=rand(2,2000); plot2d(u(1,:),u(2,:),0) bx=[0:0.2:1]; by=bx; f=freq2d(u,bx,by); xbasc() hist3d(list(f,bx,by)) t1=max(rand(2,2000),"r"); t2=min(rand(2,2000),"r"); xbasc() plot2d(t1,t2,0) bx=[0:0.2:1]; by=bx; f=freq2d([t1;t2],bx,by); xbasc() hist3d(list(f,bx,by)) M=[0;0]; S=[1,0.8;0.8,1]; v=grand(2000,"mn",M,S); xbasc() plot2d(v(1,:),v(2,:),0) bx=[-3:1.2:3]; by=bx; f=freq2d(v,bx,by); xbasc() hist3d(list(f,bx,by))On peut visualiser des nuages de points à trois dimensions à l'aide de
param3d1
, et
utiliser la rotation à l'aide de la souris.
M=[0;0;0]; S=[1,0.5,0.9 ; 0.5,1,0.3 ; 0.9,0.3,1]; v=grand(10000,"mn",M,S); xbasc() param3d1(v(1,:)',v(2,:)',list(v(3,:)',0))