Un fichier de données
Travaillons sur une enquête de satisfactions dans un hôpital, récupéré lors d’un cours de FUN (France Unité Numérique). Les fichiers sont disponibles ici.
Par la suite, ces données seront stockées dans la variable satis .
Dans ces données comme souvent, les observations sont en lignes et les variables en colonnes.
Les couleurs
Pour ne pas rester sur le gris par défaut, voici la liste des couleurs de R.
Bien comprendre les intervalles
Avant d’en venir aux histogrammes, pour bien comprendre les intervalles utilisés, on peut utiliser la commande cut qui va associer à chaque valeur un intervalle.
Pour les âges, voici quelques essais.
satis$age.cat <- cut(satis$age, breaks=seq(10,100,10)) table(satis$age.cat)
(10,20] (20,30] (30,40] (40,50] (50,60] (60,70] (70,80] (80,90] (90,100]
7 36 55 85 95 110 79 53 8
On remarque la forme par défaut de tous les intervalles (ouvert-fermé), même le premier.
On peut fermer le premier intervalle :
satis$age.cat <- cut(satis$age, breaks=seq(10,100,10),include.lowest=TRUE) table(satis$age.cat)
[10,20] (20,30] (30,40] (40,50] (50,60] (60,70] (70,80] (80,90] (90,100]
7 36 55 85 95 110 79 53 8
Pour changer le sens des intervalles (fermé-ouvert) :
satis$age.cat <-cut(satis$age,breaks=seq(10,100,10),include.lowest=TRUE,right=FALSE) table(satis$age.cat)
[10,20) [20,30) [30,40) [40,50) [50,60) [60,70) [70,80) [80,90) [90,100]
5 31 50 86 91 113 84 57 11
Enfin, on peut donner la liste exhaustive des bornes des intervalles :
satis$age.cat <- cut(satis$age, breaks=c(10,40,50,60,70,80,100),include.lowest=TRUE,right=FALSE) table(satis$age.cat)
[10,40) [40,50) [50,60) [60,70) [70,80) [80,100]
86 86 91 113 84 68
Des histogrammes par défaut
Le plus simple :
hist(satis$age)
En modifiant les intervalles et en le nommant histo :
histo<-hist(satis$age, breaks=c(10,40,50,60,70,80,100),include.lowest=TRUE,right=FALSE)
On peut maintenant accéder aux limites de l’intervalles et aux effectifs par intervalle :
histo$breaks
[1] 10 40 50 60 70 80 100
histo$counts
[1] 86 86 91 113 84 68
En utilisant les options
hist(satis$age,col="brown",main="Répartition des âges",xlab="âges",ylab="Effectifs",las=1,xlim=c(10,100),ylim=c(0,120))