---
# System prepended metadata

title: Un graphique amélioré

---

Un graphique amélioré
====

D'abord récupérer les données

```
# que ferait-on sans le tidyverse???
library(tidyverse)
# on récupère les données
data <- read_csv("exercice/Retraites.csv")
# l'instruction suivante sert à ce que R puisse utiliser les polices Windows
windowsFonts(Marianne = windowsFont("Marianne"))
```
Ceci était notre graphique réalisé ensemble

```data %>% filter(carriere %in%  c("commercant_smic", "salarie_smic"),
                AgeDebut == "20 ans et 0 mois",
                ageLiq == "65y 0m 0d 0H 0M 0S",
                generation == 1985) %>%
  ggplot() +
  geom_bar(aes(x = carriere, y = TR_pensionTotale, fill = factor(scenario,
                                                                 levels = c("Sans Réforme", "Avec Réforme"))),
           stat = "identity",
           position = "dodge") +
  scale_fill_discrete(name = "Scenario")
```

Voici le nouveau graphique :

```
data %>%
  #on commence par filtrer les données qui nous intéresse
  filter(carriere %in%  c("commercant_smic", "salarie_smic"), # les carrières
                AgeDebut == "20 ans et 0 mois", # l'âge de début
                ageLiq == "65y 0m 0d 0H 0M 0S", # l'âge de liquidation
                generation == 1985) %>% #la génération
  #puis, on pivote le tableau, de façon à avoir une ligne par type de pension
  pivot_longer(cols = c(pensionLuraHorsMico, micoVerse, AA_Pension, RCI_Pension),
               names_to = "indicateur", values_to = "montant") %>%
  # les 0 sont remplacés par des NA, car on préfère ne pas avoir d'étiquette dans ce cas
  mutate(montant = if_else(montant == 0, NA_real_, montant)) %>%

  # les données sont prêtes : on passe au graph lui-même!
  ggplot() +
  #les bâtons
  geom_bar(aes(x = factor(scenario,
                          levels = c("Sans Réforme", "Avec Réforme")), # en redéfinissant ma variable scénario, je peux avoir l'ordre que je veux
               y = montant,
               fill = factor(indicateur,
                             levels = c("RCI_Pension", "AA_Pension", "micoVerse",  "pensionLuraHorsMico"),
                             labels = c("Pension RCI", "Pension Agirc-Arrco", "Mico", "Pension de base"))),
           stat = "identity") + # je prends stat = identity, geom_col l'aurait fait directement
                                # je garde implicitement la position = position_stack(), car je veux que les bâtons s'empilent
  #les étiquettes, cette fois on doit forcer position à position_stack(), le paramètre vjust permet de placer les étiquettes au milieu de la barre
  geom_text(aes(x = scenario, y = montant, label = round(montant)),
            stat = "identity", position = position_stack(vjust = .5),
            family = "Marianne") +
  # on utilise facet_wrap pour séparer le commerçant et le salarié
  facet_wrap(~ carriere,
             labeller = labeller(carriere = c("commercant_smic" = "Commerçant", "salarie_smic" = "Salarié"))) +
  # des jolies couleurs, et des échelles adaptées
  scale_fill_manual(name = NULL,
                    values = c("#832232", "#C78283", "#A5A5A5", "#6C9A8B", "#C1D37F", "#C5D9F1")) +
  scale_x_discrete(name = NULL) +
  scale_y_continuous(name = NULL,
                     breaks = seq(0, 2400, 200),
                     limits = c(0, 2400),
                     expand = c(0, 0)) +
  # enfin on peaufine la mise en forme
  theme_classic() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1, family = "Marianne"),
        legend.text = element_text(family = "Marianne"))

```