Graphique en fonction du temps avec le logiciel R (exemple)

Courbe exprimée en fonction du temps

On peut réaliser des graphiques qui s'exprime en fonction du temps (heure, mois, date) avec le logiciel R. On parle de données calendaires qui nécessitent un traitement particulier notamment pour calculer une différence (intervalle de temps) entre deux dates par exemple.

Courbe exprimant des données en fonction du temps logiciel R

1. Charger les données à mettre en X et Y

dates_brutes =c("21/04/2017 09:30","25/04/2017 08:15","25/04/2017 19:30","03/05/2017 17:00","17/06/2017 18:00","30/06/2017 18:00")
dates = strptime(dates_brutes, "%d/%m/%Y %R")  # Pour accéder à d'autres formats de temps : cliquer ici.
y = c(1,2,10,8,7,6) # données d'ordonnées

2. Préparer les limites des axes (exprimées aussi par des dates)

# Conversion des données exprimant les limites de l'axes des x qui ira dans l'exemple d'avril à juillet.
limitations = c(as.POSIXct(strptime("01/04/2017","%d/%m/%Y" )),as.POSIXct(strptime("01/07/2017","%d/%m/%Y")))

3. Tracer le graphique

plot(dates,y,axes=F,pch=16,type="o",xlim=limitations,cex=3,col="orange",ylab="Taille (cm)",xlab="Temps (mois)")

4. Ajouter les axes mis en forme

# Abscisses exprimant dans ses graduations uniquement le noms des mois
axis.POSIXct(1, at=seq(from=strptime("01/03/2017","%d/%m/%Y" ), to=strptime("25/08/2017","%d/%m/%Y" ), by="month"), format="%b", las=2) # force indiquant la date de chaque jour
# Ordonnées
axis(2,c(0:10))

5. Calculer et afficher une différence, un intervalle de temps entre deux dates

temps_duree = as.numeric(difftime(strptime(dates_brutes[length(dates_brutes)], "%d/%m/%Y %R") , strptime(dates_brutes[1], "%d/%m/%Y %R"),units="mins"))/60/24 
cat("La différence de temps sur l'expérience est de :",round(temps_duree,0), " jours.")
text(as.POSIXct(strptime("01/06/2017","%d/%m/%Y" )),9,paste("Expérience sur : ",round(temps_duree,0)," jours."))

Mise à jour de la page février 2019