Trucs pour LaTeX & R

ggplot2

dimanche 11 février 2018 par Philippe MICHEL

ggplot2 est une nouvelle grammaire pour créer des graphiques avec R . Mais sa syntaxe, très bien pensée, change complètement nos habitudes.
Et en plus des avantages techniques le rendu est très actuel, tout à fait « material design » !
Je présente ici quelques exemples de graphiques pour vous aider à créer les vôtres.

Avant de rentrer dans le vif du sujet les deux sites indispensables :

Et, pour vous simplifier la vie il existe un méga-package tidyverse qui vous charge d’un coup ggplot2, dplyr & autres packages (purr...) créés & maintenus par Hadley Wickham & son équipe.

Le principe

Pour faire un graphique plus ou moins complexe, avec ggplot2 on va superposer des calques. Pour l’exemple qui suit, un nuage de point avec sa droite de régression on va dessiner :

  • Un fond (graphique vide, juste les axes). En même temps on définit les variables.
  • le nuage de point
  • La droite de régression
  • les axes, titres etc.
  • la légende (il n’ y en a pas dans mon exemple)
  • Et pourquoi pas un autre graphique superposé
    Ouf ! L’avantage est que chaque calque est une instruction, réutilisable. Et la syntaxe est claire.

Nuage de points

Le graphique le plus simple dans son concept. Prenons deux variables poids & age issus du data-frame patients & traçons le nuage de point avec la droite de régression & bien sûr son intervalle de confiance. Mon graphique s’appelle pp, pourquoi pas.

  1. pp <- ggplot(patients,aes(x = age, y = poids )) # Fond vide
  2. pp <- pp + geom_point() #Le nuage de point
  3. pp <- pp + geom_smooth(method=lm) # droite de régression
  4. pp <- pp + labs(x = "Âge des patients",
  5.                 y = "Poids (Kg)"
  6.                 ) # Titres des axes
  7. pp <- pp + theme_light() # Thème simple, idéal pour publication
  8. pp <- pp + theme(plot.title = element_blank(), # pas de titre
  9.                            axis.title.x = element_text(size=16, face="bold"),
  10.                            axis.title.y= element_text(size=16, face="bold"),
  11.                            axis.text.x = element_text(size=16, face="bold"),
  12.                            axis.text.y = element_text(size=16, face="bold"),
  13.                  ) # Les axes, titres etc.
  14. plot(pp) #Et on dessine

Télécharger

Essayez en supprimant des lignes pour voir & comprendre le principe des calques. Seules la première & la dernière ligne sont indispensables.


Accueil | Contact | Plan du site | | Statistiques du site | Visiteurs : 142 / 128687

Suivre la vie du site fr  Suivre la vie du site R  Suivre la vie du site ggplot2   ?    |    titre sites syndiques OPML   ?

Site réalisé avec SPIP 3.2.1 + AHUNTSIC

Creative Commons License