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"))
```