Retour à la page d’accueil

Formation ggplot2 - solution des exercices

Exercice 1: Pouvez vous dessiner un violin plot? (indice: ?geom_violin)

ggplot(expt1, aes(genotype, days.to.flower)) +
  geom_violin()
## Warning: Removed 83 rows containing non-finite values (`stat_ydensity()`).


BONUS Quel autre type de géométrie pouvez vous utilisez avec des données de ce type (catégories et nombres)? Aide: Utilisez cet arbre de décision pour choisir les géométries appropriées.

#Il est aussi possible d'utiliser une densité ou un histogramme

Exercice 2: Modifiez le graphique pour que les points soient devant plutôt que derrière les boxplots.

ggplot(expt1, aes(genotype, rosette.leaf.num)) +
  geom_boxplot() + 
  geom_jitter()
## Warning: Removed 95 rows containing non-finite values (`stat_boxplot()`).
## Warning: Removed 95 rows containing missing values (`geom_point()`).


BONUS: Ajouter la géométrie dotplot plutôt que jitter. Utilisez les exemples dans l’aide (avec ?nom de fonction) pour savoir comment l’utiliser, ou lisez cette page de blog

ggplot(expt1, aes(genotype, rosette.leaf.num)) +
  geom_boxplot() + 
  geom_dotplot(binaxis='y', stackdir='center', binwidth = 1)
## Warning: Removed 95 rows containing non-finite values (`stat_boxplot()`).
## Warning: Removed 95 rows containing missing values (`stat_bindot()`).


Exercice 3: Nous voulons étudier la relation entre le nombre de feuille de rosette et la longueur la limbe des feuilles (en mm) pour les génotypes.

Pour cela, dessinez un scatter plot (geom_point()) entre blade.length.mm et rosette.leaf.num en colorant les points en fonction de genotype.

Que se passe t-il si les points sont colorés en fonction de days.to.bolt?

ggplot(expt1, aes(blade.length.mm, rosette.leaf.num, colour = genotype)) +
  geom_point()
## Warning: Removed 333 rows containing missing values (`geom_point()`).

L’échelle de couleur est continue si nous utilisons days.to.bolt pour colorer les points car c’est une variable numérique:

ggplot(expt1, aes(blade.length.mm, rosette.leaf.num, colour = days.to.bolt)) +
  geom_point()
## Warning: Removed 333 rows containing missing values (`geom_point()`).


BONUS: Dessinez un scatter plot (geom_point()) entre blade.length.mm et rosette.leaf.num en colorant les points en fonction de vernalization, et changez la couleur des points pour que “NV” soit en bleu et “V” soit en vert. Aide: Trouvez la solution en ligne (par exemple en tapant “change color points ggplot R”)

ggplot(expt1, aes(blade.length.mm, rosette.leaf.num, colour = vernalization)) +
  geom_point() +
  scale_color_manual(values=c("blue","green"))
## Warning: Removed 333 rows containing missing values (`geom_point()`).


Exercice 4: Les couleurs n’apportent plus d’information supplémentaire. Pensez à une utilisation plus intéressante des couleurs dans ce graphique.

ggplot(expt1, aes(blade.length.mm, rosette.leaf.num, colour = fluctuation)) +
    geom_point() +
    facet_wrap( ~ genotype)
## Warning: Removed 333 rows containing missing values (`geom_point()`).


Exercice 5: Modifiez le graphique précédent afin de séparer les données (facet) en fonction de fluctuation en ligne, et day.length en colonne et de colorer les points en fonction du génotype.

ggplot(expt1, aes(blade.length.mm, rosette.leaf.num, colour = genotype)) +
    geom_point() +
    facet_grid(day.length ~ fluctuation)
## Warning: Removed 333 rows containing missing values (`geom_point()`).


Exercice 6: Reproduisez le graphique suivant (ou quelque chose d’approchant): Fig. 2B-C of Burghard et al 2015.

Indice: facet le graphique avec day.length et temperature et colorer l’intérieur des boxplot en fonction de fluctuation.

ggplot(expt1, aes(genotype, days.to.bolt, fill = fluctuation)) +
    geom_boxplot() +
    facet_grid(day.length ~ temperature)