Diagramme en camembert avec légende, valeurs et étiquettes superposées

L'exemple ci-dessous permet de faire des diagrammes en camembert (diagramme en secteurs avec le logiciel R) en ajoutant une légende détaillée dans un cadre, en précisant le nom de chaque quartier et la valeur correspondante en pourcentages.

Exemple : un diagramme en camembert légendé en détails

Diagramme en camembert avec le logiciel R

Télécharger le script complet ici.

  1. Soit une liste de valeurs
valeurs <- c(125,200,400)
  1. Tracer le diagramme en camembert
pie(valeurs,col=c("#AAFFAA","#FFEE44","#FFAAAA"),labels=c("Bon","Moyen","Douteux"),main="Titre",cex=1.5)     
# labels : ces étiquettes sont une option, dans la mesure où on peut se contenter de la légende (cf. point 4 ci-dessous)
# cex : taille de la police, par défaut ce paramètre est de 1, ici 1.5
  1. Ajouter les valeurs en % en tant qu'étiquettes au centre
# Calculer pourcentages correspondant à chaque valeurs
total = sum(valeurs)
pourcentages = valeurs/total*100 ; cat("Les valeurs en % sont de :",pourcentages,"\n")
# Fonction à coller dans R - cette fonction text_pie permet d'ajouter des étiquettes au centre des quartiers
text_pie = function(vector,labels=c(),cex=1) {
     vector = vector/sum(vector)*2*pi
     temp = c()
     j = 0
     l = 0
     for (i in 1:length(vector)) {
          k = vector[i]/2        
          j =  j+l+k
          l = k
          text(cos(j)/2,sin(j)/2,labels[i],cex=cex)
     }
     vector = temp
}
# Ajouter les étiquettes
text_pie(pourcentages,c("17,2%","27,6%","55,2%"),cex=1.1) # Ces valeurs en % sont à remplacer manuellement
  1. Ajouter la légende
legend(x="bottomright", legend=c("Bon","Moyen","Douteux"), cex=1.2,fill=c("green","orange","red"))
#x : position du cadre de légende (ici en bas à droite)
#cex : taille de la police