histplot — dessine un histogramme
histplot(n, data, <opt_args>) histplot(x, data, <opt_args>)
entier strictement positif (nombre de classes)
vecteur (strictement croissant) definissant les classes
vecteur (contenant les données à analyser)
Représente une séquence de la forme clé1=valeur1,
clé2=valeur2
,... où clé1
,
clé2,...
peut être n'importe quel paramètre optionnel de plot2d
(style,strf,leg, rect,nax, logflag,frameflag, axesflag
) ou encore normalization
.
Pour ce dernier la valeur correspondante est un scalaire booléen
(la valeur par défaut étant %t).
Cette fonction dessine un histogramme des données contenues dans le vecteur data
en utilisant les classes x
. Quand le nombre de classes n
est fourni
au lieu de x
, celles-ci sont définies de manière équirépartie et telles que
x(1) = min(data) < x(2) = x(1) + dx < ... < x(n+1) = max(data)
avec dx = (x(n+1)-x(1))/n.
Les classes sont définies par C1 = [x(1), x(2)] puis Ci = ] x(i), x(i+1)] pour i = 2,3,...,n.
En notant Nmax le nombre total de données (Nmax = length(data)) et Ni le nombre de données
se situant dans Ci, la valeur de l'histogramme pour x appartenant à Ci
est égale à Ni/(Nmax (x(i+1)-x(i))) quand normalization
est vrai
(comportement par défaut) et sinon elle vaut simplement Ni. Quand l'histogramme
est normalisé il vérifie la propriété suivante :
x(n+1) / | h(x) dx = 1, quand x(1)<=min(data) et max(data) <= x(n+1)) / x(1)
N'importe quel paramètre optionnel de plot2d peut être passé à histplot ; par exemple
pour dessiner votre histogramme avec la couleur numéro 2 (du bleu si vous utilisez la carte
des couleurs standard) tout en restreignant le dessin au le rectangle [-3,3]x[0,0.5],
vous pouvez utiliser histplot(n,data, style=2, rect=[-3,0,3,0.5])
.
La commande histplot()
sans argument montre un example.
// exemple #1: variations sur l'histogramme d'un échantillon gaussien N(0,1) d=rand(1,10000,'normal'); clf();histplot(20,d) clf();histplot(20,d,normalization=%f) clf();histplot(20,d,leg='rand(1,10000,''normal'')',style=5) clf();histplot(20,d,leg='rand(1,10000,''normal'')',style=16, rect=[-3,0,3,0.5]); // exemple #2: histogramme d'un échantillon de loi binomiale B(6,0.5) d = grand(1000,1,"bin", 6, 0.5); c = linspace(-0.5,6.5,8); clf() subplot(2,1,1) histplot(c, d, style=2) xtitle("l''histogramme normalisé") subplot(2,1,2) histplot(c, d, normalization=%f, style=5) xtitle("l''histogramme non normalisé") // exemple #3: histogramme d'un échantillon de loi exponentielle E(lambda) lambda = 2; X = grand(100000,1,"exp", 1/lambda); Xmax = max(X); clf() histplot(40, X, style=2) x = linspace(0,max(Xmax),100)'; plot2d(x,lambda*exp(-lambda*x),strf="000",style=5) legend(["histogramme d''un échantillon E(lambda)" "densité exacte"]);