Un diagramme ombrothermique est un excellent exemple de combinaison graphique puisqu'il s'agit de combiner dans un seul graphique la température moyenne mensuelle d'une région (sous forme de courbe) et la pluviosité mensuelle moyenne (sous forme de diagramme en barres). C'est donc une combinaison diagramme en barres/courbe. Cet exemple permet de plus de montrer comment réaliser un graphique avec deux axes des ordonnées avec le logiciel R project.
Cette superposition de graphiques permet d'afficher la courbe des températures sur les barres de pluviosités mensuelles.
# Charger les valeurs (ici pour la ville de Bordeaux)Precipitation = c(92,82.6,70,80,83.9,63.8,54.5,59.5,90.3,94.1,106.9,106.7)Mois = c("Jan.","Fev.","Mar.","Avr.","Mai.","Jui.","Jui.","Aou.","Sep.","Oct.","Nov.","Dec.")Temperature = c(6.4,7.6,9.6,11.6,15.4,18.3,20.8,20.9,18.1,14.2,9.4,7.3)2. Tracer le graphique
# Tracer le graphique# 1- Ouvrir une nouvelle fenêtre graphiqueplot.new()# 2- Programmer des marges larges pour l'ajout ultérieur des titres des axespar(mar=c(4,4,3,4))# 3- On récupère dans position la position de chaque barreposition = barplot(Precipitation,col="cyan",names.arg=Mois,axes=F,ylab="",xlab="",main="Précipitations et températures moyennes à Bordeaux",ylim=c(0,125), las=2,space=0,cex.main=0.8) # las = 2 : ce paramètre permet d'orienter le label de chaque barre verticalement# 4- Configurer la couleur de l'axe de gauche (correspondant ici aux barres)axis(2,col="black",at=seq(0, 125, by=25))# 5- Superposer la courbepar(new=TRUE,mar=c(4,4,3,4))maximal = max(position)+(position[2]-position[1])plot(position,Temperature,col="red",type="o",lwd=2,pch=16,axes=F,ylab="",xlab="",ylim=c(0,25), xlim=c(0,length(Temperature)),yaxs ="i")# 6- Configurer l'axe de droite, correspondant à la coubeaxis(4,col.axis="red",col="red")box();grid()3. Ajouter des titres aux axes
# Ajouter des titres aux axes# Titre de l'axe de gauchemtext("Précipitations (mm)",side=2,line=2,cex=1.1)# Titre de l'axe de droitemtext("Température (°C)",side=4,col="red",line=2,cex=1.1)# AXE Xmtext("Mois",side=1,col="black",line=2.5,cex=1.1)4.- Tracer le diagramme en colorant cette fois-ci la différence entre température et pluviosité en jaune.
L'ajout de ce polygone change tout car il faut tracer par couche :le polygone en premier à l'échelle de l'axe de droite puis par-dessus les barres associées à l'axe de gauche et enfin la courbe de température (associée à l'axe de droite de nouveau).
# 1- Ouvrir une nouvelle fenêtre graphiqueplot.new()# 2- Programmer des marges larges pour l'ajout ultérieur des titres des axespar(mar=c(4,4,3,4),bg="#F6E3CE") # bg : couleur du fond du graphique# 3- Tracer la courbe des températures# on simule le tracer des barres pour retenir la position de celles-ci et mettre ainsi les points de température aumême niveauposition = barplot(Precipitation,col="cyan",names.arg=Mois,axes=F,ylab="",xlab="",ylim=c(0,125), las=2, space=0,plot=F)# on trace la courbe des températures afin de donner une échelle au graphique pour pouvoir ajouter un polygone de colorationplot(position,Temperature,col="red",type="o",lwd=2,pch=16,axes=F,ylab="",xlab="",ylim=c(0,25), xlim=c(0,length(Temperature)),yaxs ="i")# on ajoute le polygone jaunepolygon(c(position[1],position,position[length(position)]),c(0,Temperature,0),col="yellow")# 4- on trace le graphique diagramme en barres dans un nouveau graphique superposé.par(new=T,mar=c(4,4,3,4))barplot(Precipitation,col="cyan",names.arg=Mois,axes=F,ylab="",xlab="",main="Précipitations et températures moyennes à Bordeaux",ylim=c(0,125), las=2,space=0,cex.main=0.8)# 5- Configurer la couleur de l'axe de gauche (correspondant ici aux barres)axis(2,col="black",at=seq(0, 125, by=25))# 6- Retracer la courbe qui a été couverte par le polygone puis les barrespar(new=TRUE,mar=c(4,4,3,4))maximal = max(position)+(position[2]-position[1])plot(position,Temperature,col="red",type="o",lwd=2,pch=16,axes=F,ylab="",xlab="",ylim=c(0,25), xlim=c(0,length(Temperature)),yaxs ="i")# 7- Configurer l'axe de droite, correspondant à la coubeaxis(4,col.axis="red",col="red")box();grid()# 8- Ajouter des titres aux axes# Titre de l'axe de gauchemtext("Précipitations (mm)",side=2,line=2,cex=1.1)# Titre de l'axe de droitemtext("Température (°C)",side=4,col="red",line=2,cex=1.1)# AXE Xmtext("Mois",side=1,col="black",line=2.5,cex=1.1)