Histogrammes 2D et 3D avec R

L'essentiel de cette page !

Tracer un histogramme avec R, c'est à dire visualiser la répartition d'un effectif se fait avec la commande hist().

On peut aussi réaliser des histogrammes 3D avec la commande hist3D du package plot3D mais il s'agit de diagrammes en barres. Le calcul de la répartition devra être fait par soi-même.

Tracer un histogramme

  • Afficher un histogramme
# soit x une liste de données simulées ici 
x <- rnorm(10000,20,3) # A remplacer 
# Tracer l'histogramme 
hist(x) 
  • Fixer le nombre de barres de l'histogramme
    • breaks : argument définissant le nombre de barres
hist(x, breaks=20) 
  • Imposer la découpe de l'histogramme : la fréquence des occurrences de chaque donnée est imposée par catégorie
# soit x une liste de données simulées ici 
x <- rpois(10000,2) 
# ex : 3 classe de 0 à 1, 1 à 2, 2 à 4, 4 à 16 ) 
hist(x, br = c(0,0.5,2,3,16),col="red") 

Mettre en forme un histogramme

  • Changer la couleur des barres
    • col : argument codant pour la couleur
hist(x, breaks=20, col="red") # couleurs par leur nom 
#ou  
hist(x, breaks=20, col=2) # couleurs par leur code R 
#ou  
hist(x, breaks=20, col="#AA12B6") # code hexadécimal 
 #  Autres couleurs 
  • Changer le remplissage des barres (hachurage)
    • density : densité des hachures
    • si density = 0, les barres sont vides
hist(x, density=5) 
  • Tracer l'histogramme avec titre principal et titres aux axes
    • main : titre principal
    • xlab et ylab : titre des 2 axes
hist(x, main="titre", xlab="Types",ylab="Fréquence") 
  • Afficher la fréquence des occurrences ou le nombre d'occurrences en ordonnées
# Affiche   le nombre d'occurrences 
hist(x, freq = T) # ou hist(x, freq=TRUE) 
# Affiche  la fréquence des occurrences 
hist(x, freq = F) # ou hist(x, freq=FALSE)  
  • Superposer une courbe de lissage traduisant la densité par occurrence (cf. estimation par noyau)
x <- rnorm(10000,10,3 ) # x liste de valeurs simulées  à remplacer par les votres
hist(x,freq=F,col="#AAFFAA",ylim=c(0,0.15)) # il faut que freq=F
densite <- density(x) # créer une liste des densités
lines(densite, col = "red",lwd=3) # Superposer la ligne

Tracer un histogramme en 3D (histogramme en trois dimensions)

Voici un exemple qui permet de tracer un histogramme 3D.

Nous avons un jeu de données de 10 sur 10 dont on a la valeur de chaque barre de coordonnées (x,y)

Attention, ce n'est pas réellement un histogramme 3D, ce serait plutôt un diagramme en barres 3D.

Faire réellement un histogramme 3D ici requiert de calculer soi-même la valeur de chaque barre.

install.packages("plot3D")
library("plot3D")

ma_matrice <- matrix(rnorm(100),10,10) ; ma_matrice
hist3D(z=ma_matrice, expand=.5, alpha=.5, shade=.75, theta=130, phi=20, cex=2, main="Histogramme 3D")
# code issu de l'aide de mon collègue J. Bousquet