Diagrammes à barres empilées horizontales et catégories différentes pour chaque barre

Voici un diagramme en barres à barres cumulées. Il présente des caractéristiques particulières qui ne rend pas sa réalisation intuitive sous R :

  • Les barres sont cumulées/empilées
  • Les barres sont horizontales
  • Chaque présente des catégories différentes de l'autres barres

Exemple : un diagramme en barres présentant la répartition des surfaces de différentes cultures par catégorie

Diagrammes à barres empilées horizontales et catégories variables avec R project

Répartition des surfaces en hectares.

Télécharger le script complet ici.

  1. Préparer les données propres à chaque barre : les barres doivent présenter toutes les catégories existantes - mettre 0 si on ne veut pas qu'elle apparaisse.
barre1 = c(0,0,0,0,0,0,7,3.5) # Autres ==> On a mis 0 pour les différentes catégories de légumineuses et céréales
barre2 = c(0,0,0,0,2, 6,0,0) # Céréales
barre3 = c(3,2,3,4,0,0,0,0) # légumineuses
couleurs_1 = c("#B45F04","#FA5882") # pommes de terre, tomates
couleurs_2 = c("#FFFF00","#F2F5A9")# Céréales
couleurs_3 = c("#2EFE64","#BEF781","#088A29","#86B404") # légumineuses
  1. Compiler les données relatives aux barres (couleurs inclues)
data = cbind(barre1,barre2 ,barre3)
couleurs_compil = c(couleurs_3,couleurs_2,couleurs_1)
  1. Préparer la fenêtre graphique
plot.new() # ouvre une fenêtre graphique
par(mar = c(3,7,3,2)) # change les marges pour permettre l'affichages des titres des barres (7 marge gauche)
  1. Tracer le diagramme
barplot(height = data,

space=2,horiz=T,col=couleurs_compil,xlim=c(0,17),ylim=c(0,12),

names.arg = c("Autres","Céréales","Légumineuses"),

legend.text = c("Trèfle", "Luzerne","Pois","Haricots","Blé","Tritical","Pommes de terre","tomates"),

args.legend = list(x = "bottomright"),las=1

)
# height : données des barres
# space : espace entre les 3 barres
# horiz = T pour que les barres soient horizontales
# xlim et ylim pour centrer les barres
# names.arg : titres des 3 barres
# legend.text et args.legend pour afficher la légende
# las : mettre la légende horizontale