Structure de consommation des ménages selon le niveau de vie en 2017 - IF-203-diffusion

Données - INSEE

Figure 1 : structure de consommation selon le niveau de vie, 2017

Code
fig1 |>
  select(poste, quintile_1, quintile_5) |>
  pivot_longer(-poste, names_to = "groupe", values_to = "part") |>
  mutate(groupe = recode(groupe, quintile_1 = "1er quintile (ménages modestes)",
                          quintile_5 = "5e quintile (ménages aisés)"),
         poste = fct_reorder(poste, part, .fun = max)) |>
  ggplot(aes(x = poste, y = part, fill = groupe)) +
  geom_col(position = "dodge") +
  coord_flip() +
  scale_fill_manual(values = c("1er quintile (ménages modestes)" = "#E8737A",
                                "5e quintile (ménages aisés)" = "#1B3F8B"), name = NULL) +
  theme_minimal(base_size = 10) +
  labs(x = NULL, y = "%",
       title = "Structure de consommation selon le niveau de vie",
       subtitle = "2017") +
  theme(legend.position = "bottom", panel.grid.minor = element_blank())

Figure 2 : structure de consommation des propriétaires et locataires

Code
fig2 |>
  filter(groupe %in% c("quintile_1", "quintile_5")) |>
  mutate(groupe = recode(groupe, quintile_1 = "1er quintile (modestes)", quintile_5 = "5e quintile (aisés)"),
         poste = fct_reorder(poste, part, .fun = max)) |>
  ggplot(aes(x = poste, y = part, fill = groupe)) +
  geom_col(position = "dodge") +
  facet_wrap(~ statut_occupation) +
  coord_flip() +
  scale_fill_manual(values = c("1er quintile (modestes)" = "#E8737A",
                                "5e quintile (aisés)" = "#1B3F8B"), name = NULL) +
  theme_minimal(base_size = 9) +
  labs(x = NULL, y = "%",
       title = "Structure de consommation des propriétaires et des locataires",
       subtitle = "selon le niveau de vie, 2017") +
  theme(legend.position = "bottom", panel.grid.minor = element_blank())

Figure 3 : quatre principaux postes selon le type de ménage, 2017

Code
fig3 |>
  mutate(type_menage = fct_relevel(type_menage, "Personnes seules", "Familles monoparentales",
                                    "Couples sans enfant", "Couples avec enfants")) |>
  ggplot(aes(x = type_menage, y = part, fill = poste)) +
  geom_col(position = "dodge") +
  scale_fill_brewer(palette = "Set2", name = NULL) +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = "%",
       title = "Part des quatre principaux postes dans la consommation",
       subtitle = "selon le type de ménage, 2017") +
  theme(legend.position = "bottom", axis.text.x = element_text(angle = 20, hjust = 1),
        panel.grid.minor = element_blank()) +
  guides(fill = guide_legend(ncol = 2))

Figure 4a : écarts aisés/modestes, 1979 et 2017

Code
fig4a |>
  mutate(poste = fct_reorder(poste, ecart, .fun = function(x) x[2])) |>
  ggplot(aes(x = poste, y = ecart, fill = factor(annee))) +
  geom_col(position = "dodge") +
  geom_hline(yintercept = 0, color = "grey40") +
  coord_flip() +
  scale_fill_manual(values = c("1979" = "#8FA8D8", "2017" = "#1B3F8B"), name = NULL) +
  theme_minimal(base_size = 10) +
  labs(x = NULL, y = "Points",
       title = "Écarts de structure de consommation entre ménages aisés et modestes",
       subtitle = "20 % les plus aisés moins 20 % les plus modestes, 1979 et 2017") +
  theme(legend.position = "bottom", panel.grid.minor = element_blank())

Figure 4b : écarts cadres/ouvriers, 1979 et 2017

Code
fig4b |>
  mutate(poste = fct_reorder(poste, ecart, .fun = function(x) x[2])) |>
  ggplot(aes(x = poste, y = ecart, fill = factor(annee))) +
  geom_col(position = "dodge") +
  geom_hline(yintercept = 0, color = "grey40") +
  coord_flip() +
  scale_fill_manual(values = c("1979" = "#8FA8D8", "2017" = "#1B3F8B"), name = NULL) +
  theme_minimal(base_size = 10) +
  labs(x = NULL, y = "Points",
       title = "Écarts de structure de consommation entre cadres et ouvriers",
       subtitle = "1979 et 2017") +
  theme(legend.position = "bottom", panel.grid.minor = element_blank())