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