> langage et graphiques > Graphiques > Histogrammes
Histogrammes
Objectif : on a une variable et on cherche à connaître sa distribution de valeurs.
hist : permet de calculer un histogramme de distribution (en comptant le nombre d'individus sur chaque intervalle) et de la tracer.
hist(vect) : trace un histogramme de la distribution des valeurs du vecteur (avec en ordonnée, le nombre d'individus).
hist(vect, freq = FALSE) : indique en ordonnées les fréquences (< 1) au lieu du nombre d'individus (l'aire sous la courbe vaut alors 1).
hist(vect, breaks = 100) : trace l'histogramme en partageant l'intervalle de variation de vect en 100 sous-intervalles.
hist(vect, breaks = seq(-5, 5, 0.1)) : trace l'histogramme avec comme sous-intervalles seq(-5, 5, 0.1). Les valeurs du vecteur doivent être dans l'intervalle donné ([-5, 5]). Par défaut, chaque intervalle exclut la borne inférieure (sauf le premier) et inclut la borne supérieure (donc ici, [-5,-4], ]-4,-3], ]-3,-2], ..., ]4,5])
On peut aussi faire : hist(vect, xlim = c(-5, 5), breaks = 50).
hist(vect, breaks = 50, col = "lightblue", border = "blue", xlab = "values", main = "title", xaxp = c(0, 50, 10)) : trace l'histogramme en bleu clair avec une bordure bleue, en numérotant l'axe des x de 0 à 50 avec 10 graduations.
his <- hist(vect, breaks = 50, plot = FALSE) : calcule l'histogramme, mais sans le tracer :
- his$breaks : donne les limites des intervalles (n + 1).
- his$counts : donne le nombre d'individus sur chaque intervalle (n).
Pour tracer 2 histogrammes sur le même graphe :
interv <- seq(-1, 6, 0.2) # suffisamment grand.
his1 <- hist(vect1, breaks = interv, plot = FALSE)
his2 <- hist(vect2, breaks = interv, plot = FALSE)
mat <- rbind(his1$counts, his2$counts)
colnames(mat) <- interv[-1] # Enleve la première valeur.
barplot(mat, beside = TRUE, col = c("red", "blue"), cex.names = 0.5, las = 2)
density : calcule la densité d'un vecteur de données :
- den <- density(vect) : calcule la densité de distribution d'un vecteur avec un noyau gaussien et renvoie un objet de type density et un noyau gaussien.
- den <- density(vect, bw = 0.5) : utilise la largeur de bande 0.5, plutôt que celle par défaut.
- Un objet density a pour attributs notamment :
- den$x : les abscisses où la densité a été calculé.
- den$y : les valeurs correspondantes de la densité.
- Pour tracer l'histogramme et la densité en même temps :
hist(vect, xlim = c(-3, 6), breaks = 50, col = "lightblue", freq = FALSE)
den <- density(vect)
lines(den, col = "red")
Copyright Aymeric Duclert
programmer en R, tutoriel R, graphes en R