Diagramme ombrothermique avec le logiciel R project

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.

Réaliser un diagramme ombrothermique

Diagramme ombrothermique avec le logiciel R project

Cette superposition de graphiques permet d'afficher la courbe des températures sur les barres de pluviosités mensuelles.

  1. Charger les valeurs nécessaires
# 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 graphique
plot.new()
# 2- Programmer des marges larges pour l'ajout ultérieur des titres des axes
par(mar=c(4,4,3,4))
# 3- On récupère dans position la position de chaque barre
position = 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 courbe
par(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 coube
axis(4,col.axis="red",col="red")
box();grid()

3. Ajouter des titres aux axes

# Ajouter des titres aux axes
# Titre de l'axe de gauche
mtext("Précipitations (mm)",side=2,line=2,cex=1.1)
# Titre de l'axe de droite
mtext("Température (°C)",side=4,col="red",line=2,cex=1.1)
# AXE X
mtext("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 graphique
plot.new()
# 2- Programmer des marges larges pour l'ajout ultérieur des titres des axes
par(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 niveau
position = 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 coloration
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")
# on ajoute le polygone jaune
polygon(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 barres
par(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 coube
axis(4,col.axis="red",col="red")
box();grid()
# 8- Ajouter des titres aux axes
# Titre de l'axe de gauche
mtext("Précipitations (mm)",side=2,line=2,cex=1.1)
# Titre de l'axe de droite
mtext("Température (°C)",side=4,col="red",line=2,cex=1.1)
# AXE X
mtext("Mois",side=1,col="black",line=2.5,cex=1.1)