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
Exemple : un diagramme en barres présentant la répartition des surfaces de différentes cultures par catégorie
Répartition des surfaces en hectares.
Télécharger le script complet ici.
- 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
- Compiler les données relatives aux barres (couleurs inclues)
data = cbind(barre1,barre2 ,barre3)
couleurs_compil = c(couleurs_3,couleurs_2,couleurs_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)
- 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