Retour à la page d’accueil




Exercice 1:

  1. Utilisez la fonction gather() pour restructurer le tableau afin de faire un boxplot de blade.length.mm et total.leaf.length.mm, coloré par fluctuation.
  1. Ajoutez aux boxplots des encoches indiquant l’étendue de l’intervalle de confiance à 95% de la médiane (voir l’option notch dans geom_boxplot). Si les encoches sont étroite, il y a peu d’incertitude sur la médiane, si les encoches sont large, il y a une forte incertitude sur la médiane. Si les encoches de boxplots que nous comparons se chevauchent, alors nous ne pouvons pas conclure à une différence de médiane entre les médiane des deux groupes.
gather(expt1, "trait", "length.mm", blade.length.mm, total.leaf.length.mm) %>% 
  ggplot(aes(x=trait, y=length.mm, color=fluctuation)) +
  geom_boxplot(notch=TRUE)
## Warning: Removed 630 rows containing non-finite values (stat_boxplot).


  1. Interprétez le graphique: Y a t’il un effet de la fluctuation de température sur la longueur de blade ou de la feuille? Pourquoi?


Sur le graphique nous observons que les valeurs des boxplots pour les plantes ayant poussé en condition de température variable sont plus élevée que pour les plantes ayant pousser en condition de température stable. Pour les longueurs de blade et de la feuille, la médiane est plus élevée en condition de température variable, et les encoches sont petites, indiquant une forte certitude de la valeur de médiane, et ne se chevauchent pas entre les deux conditions indiquant une différence de médiane entre les deux conditions. Ce graphique montre que les plantes poussant en condition de température variable ont une longueur de blade et une longueur totale de la feuille plus grande que en condition de température constante.


BONUS Optimisez le graphique obtenu en jouant sur le thème, les couleurs utilisée (visibles par des daltoniens), le titre et la valeur des axes et de la légende, de manière à avoir un graphique similaire au graphique suivant:

gather(expt1, "trait", "length.mm", blade.length.mm, total.leaf.length.mm) %>% 
  ggplot(aes(x=trait, y=length.mm, fill=fluctuation)) +
  geom_boxplot(notch = TRUE) +
  scale_fill_brewer(palette = "Set2", labels = c("Con"="Constant", "Var"="Variable"), 
                    name="Fluctuation type") +
  theme_bw() +
  scale_x_discrete(name="",labels=c("blade.length.mm"="Blade","total.leaf.length.mm"="Total leaf")) +
  ylab("Length (mm)")
## Warning: Removed 630 rows containing non-finite values (stat_boxplot).


Exercice 2:

Calculez la médiane et l’écart-type de blade.length.mm et total.leaf.length.mm pour chaque genotype au différentes day.length. Ajoutez aussi le nombre d’observations de chaque groupe

group_by(expt1, genotype, day.length) %>% 
  summarise(mediane.blade.length.mm=median(blade.length.mm, na.rm = TRUE),
            ecart.type.blade.length.mm=sd(blade.length.mm, na.rm = TRUE),
            mediane.total.leaf.length.mm=median(total.leaf.length.mm, na.rm = TRUE),
            ecart.type.total.leaf.length.mm=sd(total.leaf.length.mm, na.rm = TRUE),
            n.obs=n())
## `summarise()` regrouping output by 'genotype' (override with `.groups` argument)
## # A tibble: 20 x 7
## # Groups:   genotype [10]
##    genotype day.length mediane.blade.l… ecart.type.blad… mediane.total.l…
##    <chr>         <dbl>            <dbl>            <dbl>            <dbl>
##  1 Col Ama           8             23.1             4.13             39.1
##  2 Col Ama          16             13.7             2.12             23  
##  3 Col FRI           8             23.4             3.78             40.0
##  4 Col FRI          16             20.1             3.75             34  
##  5 fca-6             8             22.4             5.28             34.8
##  6 fca-6            16             16.8             3.02             27.8
##  7 flc-3 F…          8             23.5             3.99             39.8
##  8 flc-3 F…         16             13.5             3.05             21.5
##  9 flk-1             8             23.2             9.75             39.1
## 10 flk-1            16             20.8             3.63             35.3
## 11 fve-3             8             20.5             3.12             37.9
## 12 fve-3            16             21.9             2.13             36.6
## 13 ld-1              8             24.4             4.12             37.2
## 14 ld-1             16             24.2             3.03             40.0
## 15 Ler-1             8             21.6             8.00             34.4
## 16 Ler-1            16             13.8             3.65             17.9
## 17 prmt5 F…          8             20.8             3.62             34.1
## 18 prmt5 F…         16             19.9             3.81             32.5
## 19 vin3-4 …          8             21.4             3.49             39.6
## 20 vin3-4 …         16             23.6             3.23             39.3
## # … with 2 more variables: ecart.type.total.leaf.length.mm <dbl>, n.obs <int>



Exercice 3

Faites un voilin plot de total.leaf.length.mm pour chaque génotype et ajoutez la médiane pour chaque groupe (avec un point coloré) ainsi que le nombre d’observation de chaque groupe

group_by(expt1, genotype) %>% 
  summarise( mediane.total.leaf.length.mm=median(total.leaf.length.mm, na.rm = TRUE),
            n.obs=n()) %>% 
  mutate(n.obs=paste("n =",n.obs)) %>% 
  full_join(expt1, by="genotype") %>%
  ggplot(aes(x=genotype, y=total.leaf.length.mm)) +
  geom_violin() +
  geom_point(aes(x=genotype, y=mediane.total.leaf.length.mm), col="red") +
  geom_text(aes(label=n.obs, x=genotype, y=0))
## `summarise()` ungrouping output (override with `.groups` argument)
## Warning: Removed 303 rows containing non-finite values (stat_ydensity).



Exercice 4

Représenter des violin plot de cauline.leaf.num pour les génotypes de background “Col”, colorés par la température et ce uniquement pour les plantes sans fluctuation de température et qui sont en jours longs (16 h).

Ordonnez les génotypes selon ces deux cas (un graphique par cas):

-1 Dans l’ordre suivant: “Col Ama”, “ld-1”, “fve-3”, “flk-1”

-2 Dans l’ordre de la valeur de cauline.leaf.num

# Ordonnez les génotypes dans l'ordre suivant: "Col Ama", "ld-1", "fve-3", "flk-1"

  filter(expt1, background=="Col" & fluctuation=="Con" & day.length==16) %>% 
  mutate(genotype = factor(genotype, levels = c("Col Ama", "ld-1", "fve-3", "flk-1"))) %>% 
  ggplot(aes(x=genotype, y=cauline.leaf.num, fill=factor(temperature))) +
  geom_violin()
## Warning: Removed 1 rows containing non-finite values (stat_ydensity).

# Ordonnez les génotypes dans l'ordre de la valeur de `cauline.leaf.num`

  filter(expt1, background=="Col" & fluctuation=="Con" & day.length==16) %>% 
  mutate(genotype = fct_reorder(genotype, cauline.leaf.num)) %>% 
  ggplot(aes(x=genotype, y=cauline.leaf.num, fill=factor(temperature))) +
  geom_violin()
## Warning: Removed 1 rows containing non-finite values (stat_ydensity).