Niveau de vie et pauvreté en 2023 - ip2063

Données - INSEE

Figure 1 : déciles de niveau de vie de 1996 à 2023

Code
fig1 |>
  mutate(decile = factor(decile, levels = c("D1", "D5 (médiane)", "D9"))) |>
  pivot_longer(c(apres, avant), names_to = "redistribution", values_to = "indice") |>
  mutate(redistribution = recode(redistribution, apres = "Après redistribution", avant = "Avant redistribution")) |>
  ggplot(aes(x = annee, y = indice, color = redistribution)) +
  geom_hline(yintercept = 100, color = "grey60", linewidth = 0.4) +
  geom_line(linewidth = 1) +
  facet_wrap(~ decile) +
  scale_color_manual(values = couleurs_redistribution, name = NULL) +
  theme_minimal(base_size = 13) +
  labs(x = NULL, y = NULL,
       title = "Déciles de niveau de vie (D1, médiane, D9) de 1996 à 2023",
       subtitle = "indice base 100 en 2008, en euros constants") +
  theme(legend.position = "bottom",
        panel.grid.minor = element_blank())

Figure 2 : indicateurs d’inégalités de 1996 à 2023

Code
fig2 |>
  rename(`Rapport interdécile D9/D1` = d9_d1,
         `Rapport (100-S80)/S20` = ratio_100s80_s20,
         `Indice de Gini` = gini) |>
  pivot_longer(-annee, names_to = "indicateur", values_to = "valeur") |>
  ggplot(aes(x = annee, y = valeur)) +
  geom_line(linewidth = 1, color = "#1B3F8B") +
  facet_wrap(~ indicateur, scales = "free_y") +
  theme_minimal(base_size = 13) +
  labs(x = NULL, y = NULL,
       title = "Indicateurs d'inégalités de niveau de vie de 1996 à 2023") +
  theme(panel.grid.minor = element_blank())

Figure 3 : indicateurs de pauvreté au seuil de 60 % de 2016 à 2023

Code
fig3 |>
  filter(str_starts(indicateur, "Taux de pauvreté")) |>
  ggplot(aes(x = annee, y = value)) +
  geom_col(fill = "#1B3F8B") +
  geom_text(aes(label = value), vjust = -0.4, size = 3.5) +
  scale_x_continuous(breaks = 2016:2023) +
  theme_minimal(base_size = 13) +
  labs(x = NULL, y = NULL,
       title = "Taux de pauvreté au seuil de 60 % du niveau de vie médian",
       subtitle = "en % de la population, France métropolitaine") +
  theme(panel.grid.minor = element_blank(),
        panel.grid.major.x = element_blank())

Historique complet 1996-2023 (seuils 60 % et 50 %)

Code
tc3 |>
  filter(indicateur == "Taux de pauvreté (en %)") |>
  ggplot(aes(x = annee, y = value, color = seuil)) +
  geom_line(linewidth = 1) +
  scale_color_manual(values = c("60 % de la médiane" = "#1B3F8B", "50 % de la médiane" = "#E8737A"),
                      name = "Seuil de pauvreté") +
  theme_minimal(base_size = 13) +
  labs(x = NULL, y = NULL,
       title = "Taux de pauvreté de 1996 à 2023",
       subtitle = "aux seuils de 60 % et 50 % du niveau de vie médian (en %)") +
  theme(legend.position = "bottom",
        panel.grid.minor = element_blank())

Figure 4 : niveau de vie et pauvreté selon le statut d’activité

Code
fig4 |>
  filter(statut_activite != "Ensemble") |>
  mutate(statut_activite = fct_reorder(statut_activite, taux_pauvrete),
         annee = factor(annee)) |>
  ggplot(aes(x = statut_activite, y = taux_pauvrete, fill = annee)) +
  geom_col(position = position_dodge(width = 0.75), width = 0.7) +
  coord_flip() +
  scale_fill_manual(values = c("2022" = "#8FB0DE", "2023" = "#1B3F8B"), name = NULL) +
  theme_minimal(base_size = 13) +
  labs(x = NULL, y = NULL,
       title = "Taux de pauvreté selon le statut d'activité",
       subtitle = "en 2022 et 2023 (en %)") +
  theme(legend.position = "bottom",
        panel.grid.minor = element_blank(),
        panel.grid.major.y = element_blank())

Figure 5 : niveau de vie et pauvreté selon la composition du ménage

Code
fig5 |>
  filter(!composition_menage %in% c("Ensemble", "Personne de référence de moins de 65 ans",
                                     "Personne de référence de 65 ans ou plus")) |>
  mutate(statut_activite = fct_reorder(composition_menage, taux_pauvrete),
         annee = factor(annee)) |>
  ggplot(aes(x = statut_activite, y = taux_pauvrete, fill = annee)) +
  geom_col(position = position_dodge(width = 0.75), width = 0.7) +
  facet_wrap(~ groupe_age, scales = "free_y", ncol = 1) +
  coord_flip() +
  scale_fill_manual(values = c("2022" = "#8FB0DE", "2023" = "#1B3F8B"), name = NULL) +
  theme_minimal(base_size = 13) +
  labs(x = NULL, y = NULL,
       title = "Taux de pauvreté selon la composition du ménage",
       subtitle = "en 2022 et 2023 (en %)") +
  theme(legend.position = "bottom",
        panel.grid.minor = element_blank(),
        panel.grid.major.y = element_blank())

Tableau complémentaire 1 : éventail des déciles de niveau de vie, 1996-2023

Code
tc1 |>
  mutate(decile = factor(decile, levels = deciles_levels)) |>
  ggplot(aes(x = annee, y = indice, color = decile)) +
  geom_hline(yintercept = 100, color = "grey60", linewidth = 0.4) +
  geom_line(linewidth = 0.9) +
  facet_wrap(~ redistribution) +
  scale_color_viridis_d(name = "Décile") +
  theme_minimal(base_size = 13) +
  labs(x = NULL, y = NULL,
       title = "Éventail des déciles de niveau de vie (D1 à D9) de 1996 à 2023",
       subtitle = "indice base 100 en 2008, en euros constants") +
  theme(legend.position = "bottom",
        panel.grid.minor = element_blank())

Tableau complémentaire 2 : niveaux de vie et indicateurs d’inégalités

Code
tc2 |>
  pivot_wider(names_from = annee, values_from = value) |>
  arrange(redistribution, indicateur) |>
  gt(groupname_col = "redistribution") |>
  tab_header(title = "Niveaux de vie et indicateurs d'inégalités de 1996 à 2023") |>
  fmt_number(columns = where(is.numeric), decimals = 1) |>
  cols_label(indicateur = "") |>
  opt_interactive(use_search = TRUE, use_pagination = FALSE, use_compact_mode = TRUE,
                   use_resizers = TRUE, use_highlight = TRUE) |>
  tab_options(table.width = "100%")
Niveaux de vie et indicateurs d'inégalités de 1996 à 2023

Tableau complémentaire 4 : niveau de vie et pauvreté selon la densité communale

Code
tc4 |>
  filter(niveau_densite != "Ensemble") |>
  mutate(niveau_densite = fct_reorder(niveau_densite, taux_pauvrete),
         annee = factor(annee)) |>
  ggplot(aes(x = niveau_densite, y = taux_pauvrete, fill = annee)) +
  geom_col(position = position_dodge(width = 0.75), width = 0.7) +
  coord_flip() +
  scale_fill_manual(values = c("2022" = "#8FB0DE", "2023" = "#1B3F8B"), name = NULL) +
  theme_minimal(base_size = 13) +
  labs(x = NULL, y = NULL,
       title = "Taux de pauvreté selon la grille communale de densité",
       subtitle = "en 2022 et 2023 (en %)") +
  theme(legend.position = "bottom",
        panel.grid.minor = element_blank(),
        panel.grid.major.y = element_blank())