GGPLOT Personnalisation des Dates sur les Axes



GGPLOT Personnalisation des Dates sur les Axes

Cet article décrit comment formater une date sur un axe ggplot en utilisant les fonctions R scale_x_date() et scale_y_date().

Dans ce tutoriel graphique R, vous apprendrez à:

  • Modifier les dates sur les axes en utilisant différentes combinaisons de jours, de semaines, de mois, d’années
  • Modifier les limites de l’axe des dates.


Sommaire:

Livre Apparenté

GGPLOT2 - L’Essentiel pour une Visualisation Magnifique des Données dans R

Fonctions clés de ggplot2

  • scale_x_date(date_labels, limits) et scale_y_date(date_labels, limits) : Format des axes de date
  • scale_x_datetime(date-labels, limits) et scale_y_datetime(date_labels, limites) : Formater la date et l’heure sur l’axe

Données des séries chronologiques

Créer des jeux de données de séries chronologiques:

set.seed(1234)
last_month <- Sys.Date() - 0:29
df <- data.frame(
  date = last_month,
  price = runif(30)
)
head(df)
##         date price
## 1 2019-11-19 0.114
## 2 2019-11-18 0.622
## 3 2019-11-17 0.609
## 4 2019-11-16 0.623
## 5 2019-11-15 0.861
## 6 2019-11-14 0.640

Créer un ggplot simple avec des dates sur l’axe

library(ggplot2)
p <- ggplot(data=df, aes(x = date, y = price)) +
  geom_line()
p

Format des dates sur l’axe : scale_x_date

Pour formater la date sur les axes, vous pouvez utiliser différentes combinaisons de jours, semaines, mois et années:

  • Nom du jour de la semaine : utilisez %a et %A pour le nom abrégé et le nom complet du jour de la semaine, respectivement
  • Nom du mois : utilisez %b et %B pour le nom abrégé et le nom complet du mois, respectivement
  • %d: jour du mois comme nombre décimal
  • %U: semaine de l’année comme nombre décimal (00-53)
  • %Y: Année avec siècle.
  • Voir plus d’options dans la documentation de la fonction ?strptime
# Format : mois/jour
p + scale_x_date(date_labels = "%b/%d")

# Format : Semaine
p + scale_x_date(date_labels = "%U")

# Mois seulement
p + scale_x_date(date_labels = "%B")+
  theme(axis.text.x = element_text(angle=45, hjust = 1))

Définir les limites des axes

Utiliser le jeu de données des séries chronologiques economics[en ggplot2]:

data("economics")
# Graphe basique avec des dates sur les axes
p <- ggplot(data = economics, aes(x = date, y = psavert)) + 
     geom_line(color = "steelblue")
p

# Définir les limites de l'axe c(min, max)
min <- as.Date("2002-1-1")
max <- NA
p + scale_x_date(limits = c(min, max))

Conclusion

Pour changer le format des étiquettes des axes, lisez d’abord la page d’aide de la fonction R strptime() pour voir les formats de date disponible.

Ensuite, utilisez l’exemple suivant de code R:

p + scale_x_date(date_labels = "%b/%d")



Version: English





No Comments

Give a comment

Want to post an issue with R? If yes, please make sure you have read this: How to Include Reproducible R Script Examples in Datanovia Comments