Les salaires du privé selon la catégorie socioprofessionnelle, l’âge et le sexe en 2024 - ECRT2026_F26

Données - INSEE

Figure 1 : salaires 2024 selon la catégorie socioprofessionnelle et le sexe

Code
fig1 |>
  mutate(pcs = fct_reorder(pcs, salaire_ensemble)) |>
  select(pcs, salaire_femmes, salaire_hommes) |>
  pivot_longer(-pcs, names_to = "sexe", values_to = "salaire") |>
  mutate(sexe = recode(sexe, salaire_femmes = "Femmes", salaire_hommes = "Hommes")) |>
  ggplot(aes(x = pcs, y = salaire, fill = sexe)) +
  geom_col(position = "dodge") +
  coord_flip() +
  scale_fill_manual(values = c("Femmes" = "#E8737A", "Hommes" = "#1B3F8B"), name = NULL) +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = "€ par mois",
       title = "Salaire net moyen en EQTP selon la catégorie socioprofessionnelle et le sexe",
       subtitle = "2024") +
  theme(legend.position = "bottom", panel.grid.minor = element_blank())

Code
fig1 |>
  select(pcs, evol_2324_femmes, evol_2324_hommes, evol_2324_ensemble) |>
  pivot_longer(-pcs, names_to = "sexe", values_to = "evolution") |>
  mutate(sexe = recode(sexe, evol_2324_femmes = "Femmes", evol_2324_hommes = "Hommes",
                        evol_2324_ensemble = "Ensemble"),
         sexe = fct_relevel(sexe, "Femmes", "Hommes", "Ensemble"),
         pcs = fct_relevel(pcs, "Cadres", "Professions intermédiaires", "Employés", "Ouvriers", "Ensemble")) |>
  ggplot(aes(x = pcs, y = evolution, fill = sexe)) +
  geom_col(position = "dodge") +
  geom_hline(yintercept = 0, color = "grey30") +
  coord_flip() +
  scale_fill_manual(values = c("Femmes" = "#E8737A", "Hommes" = "#1B3F8B", "Ensemble" = "grey50"), name = NULL) +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = "% (euros constants, IPC)",
       title = "Évolution du salaire net moyen entre 2023 et 2024",
       subtitle = "en euros constants au sens de l'IPC") +
  theme(legend.position = "bottom", panel.grid.minor = element_blank())

Figure 2 : salaire net moyen en EQTP depuis 1996

Code
fig2 |>
  select(annee, cadres, professions_intermediaires, employes, ouvriers) |>
  pivot_longer(-annee, names_to = "pcs", values_to = "salaire") |>
  mutate(pcs = recode(pcs, cadres = "Cadres", professions_intermediaires = "Professions intermédiaires",
                       employes = "Employés", ouvriers = "Ouvriers"),
         pcs = fct_relevel(pcs, "Cadres", "Professions intermédiaires", "Employés", "Ouvriers")) |>
  ggplot(aes(x = annee, y = salaire, color = pcs)) +
  geom_line(linewidth = 1) +
  scale_color_brewer(palette = "Set1", name = NULL) +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = "€ 2024",
       title = "Salaire net moyen en EQTP selon la catégorie socioprofessionnelle",
       subtitle = "euros constants (IPC), depuis 1996") +
  theme(legend.position = "bottom", panel.grid.minor = element_blank())

Code
fig2 |>
  select(annee, femmes, hommes) |>
  pivot_longer(-annee, names_to = "sexe", values_to = "salaire") |>
  mutate(sexe = recode(sexe, femmes = "Femmes", hommes = "Hommes")) |>
  ggplot(aes(x = annee, y = salaire, color = sexe)) +
  geom_line(linewidth = 1) +
  scale_color_manual(values = c("Femmes" = "#E8737A", "Hommes" = "#1B3F8B"), name = NULL) +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = "€ 2024",
       title = "Salaire net moyen en EQTP selon le sexe",
       subtitle = "euros constants (IPC), depuis 1996") +
  theme(legend.position = "bottom", panel.grid.minor = element_blank())

Code
plot_ipc_vs_ipch(fig2, "ensemble", "ensemble_ipch", "Salaire réel moyen en EQTP depuis 1996")

Code
fig2 |>
  select(annee, femmes, femmes_ipch, hommes, hommes_ipch) |>
  transmute(annee, `Femmes (IPC)` = femmes, `Femmes (IPCH)` = femmes_ipch,
            `Hommes (IPC)` = hommes, `Hommes (IPCH)` = hommes_ipch) |>
  pivot_longer(-annee, names_to = "serie", values_to = "valeur") |>
  group_by(serie) |>
  mutate(valeur = 100 * valeur / valeur[1]) |>
  ungroup() |>
  mutate(sexe = if_else(str_starts(serie, "Femmes"), "Femmes", "Hommes"),
         deflateur = if_else(str_ends(serie, "IPC\\)"), "IPC", "IPCH")) |>
  ggplot(aes(x = annee, y = valeur, color = sexe, linetype = deflateur)) +
  geom_line(linewidth = 1) +
  scale_color_manual(values = c("Femmes" = "#E8737A", "Hommes" = "#1B3F8B"), name = NULL) +
  scale_linetype_manual(values = c("IPC" = "solid", "IPCH" = "dashed"), name = NULL) +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = "Base 100 en 1996",
       title = "Salaire réel selon le sexe et le déflateur utilisé",
       subtitle = "IPC (Insee) vs. IPCH (Eurostat), depuis 1996") +
  theme(legend.position = "bottom", panel.grid.minor = element_blank())

Figure 3 : salaires 2024 selon l’âge et le sexe

Code
ordre_age <- c("Moins de 25 ans", "De 25 à 39 ans", "De 40 à 49 ans", "De 50 à 54 ans", "55 ans ou plus")
fig3 |>
  filter(tranche_age != "Ensemble") |>
  mutate(tranche_age = factor(tranche_age, levels = ordre_age)) |>
  select(tranche_age, salaire_femmes, salaire_hommes) |>
  pivot_longer(-tranche_age, names_to = "sexe", values_to = "salaire") |>
  mutate(sexe = recode(sexe, salaire_femmes = "Femmes", salaire_hommes = "Hommes")) |>
  ggplot(aes(x = tranche_age, y = salaire, color = sexe, group = sexe)) +
  geom_line(linewidth = 1) +
  geom_point() +
  scale_color_manual(values = c("Femmes" = "#E8737A", "Hommes" = "#1B3F8B"), name = NULL) +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = "€ par mois",
       title = "Salaire net moyen en EQTP selon l'âge et le sexe",
       subtitle = "2024") +
  theme(legend.position = "bottom", panel.grid.minor = element_blank())

Figure 4 : dispersion des salaires selon la PCS et le sexe

Code
fig4 |>
  filter(niveau == "Distribution") |>
  mutate(distribution = fct_relevel(distribution, "1er décile (D1)", "1er quartile", "Médiane",
                                     "3e quartile", "9e décile (D9)")) |>
  select(distribution, cadres, professions_intermediaires, employes, ouvriers) |>
  pivot_longer(-distribution, names_to = "pcs", values_to = "salaire") |>
  mutate(pcs = recode(pcs, cadres = "Cadres", professions_intermediaires = "Professions intermédiaires",
                       employes = "Employés", ouvriers = "Ouvriers"),
         pcs = fct_relevel(pcs, "Cadres", "Professions intermédiaires", "Employés", "Ouvriers")) |>
  ggplot(aes(x = distribution, y = salaire, color = pcs, group = pcs)) +
  geom_line(linewidth = 1) +
  geom_point() +
  scale_color_brewer(palette = "Set1", name = NULL) +
  theme_minimal(base_size = 10) +
  labs(x = NULL, y = "€ par mois",
       title = "Dispersion des salaires nets mensuels en EQTP selon la PCS",
       subtitle = "2024") +
  theme(legend.position = "bottom", panel.grid.minor = element_blank())