Emploi, chômage, revenus du travail - édition 2019 - ip1793

Données - INSEE

Figure 1 : statut d’activité au sens du BIT par sexe et âge en 2019

Code
fig1 |>
  filter(caracteristique != "Ensemble") |>
  select(caracteristique, Femmes = femmes, Hommes = hommes) |>
  pivot_longer(-caracteristique, names_to = "sexe", values_to = "part") |>
  mutate(caracteristique = fct_reorder(caracteristique, part)) |>
  ggplot(aes(x = caracteristique, y = part, fill = sexe)) +
  geom_col(position = position_dodge(width = 0.75), width = 0.7) +
  coord_flip() +
  scale_fill_manual(values = c("Femmes" = "#E8737A", "Hommes" = "#1B3F8B"), name = NULL) +
  theme_minimal(base_size = 13) +
  labs(x = NULL, y = NULL,
       title = "Statut d'activité au sens du BIT par sexe en 2019",
       subtitle = "en % de la population des 15-64 ans") +
  theme(legend.position = "bottom",
        panel.grid.minor = element_blank(),
        panel.grid.major.y = element_blank())

Figure 2 : taux d’emploi des 15-64 ans par âge, 1975-2019

Code
fig2 |>
  mutate(age = recode(age, age_15_24 = "15-24 ans", age_25_49 = "25-49 ans",
                       age_50_64 = "50-64 ans", ensemble = "Ensemble")) |>
  ggplot(aes(x = annee, y = taux_emploi, color = age)) +
  geom_line(linewidth = 1) +
  scale_color_brewer(palette = "Set1", name = NULL) +
  theme_minimal(base_size = 13) +
  labs(x = NULL, y = NULL,
       title = "Taux d'emploi des personnes de 15 à 64 ans, par âge",
       subtitle = "1975-2019 (%)") +
  theme(legend.position = "bottom",
        panel.grid.minor = element_blank())

Figure 3 : statut d’emploi et type de contrat en 2019

Code
fig3 |>
  filter(!caracteristique %in% c("Salariés", "Ensemble des emplois")) |>
  mutate(caracteristique = fct_reorder(caracteristique, part_pct)) |>
  ggplot(aes(x = caracteristique, y = part_pct)) +
  geom_col(fill = "#1B3F8B") +
  geom_text(aes(label = paste0(part_pct, "%")), hjust = -0.15, size = 3.8) +
  coord_flip(clip = "off") +
  scale_y_continuous(expand = expansion(mult = c(0, 0.12))) +
  theme_minimal(base_size = 12) +
  labs(x = NULL, y = NULL,
       title = "Statut d'emploi et type de contrat en 2019",
       subtitle = "en % de l'emploi total") +
  theme(panel.grid.minor = element_blank(),
        panel.grid.major.y = element_blank())

Figure 4 : parts de CDD/intérim, indépendants, cadres et temps partiel, 1982-2019

Code
fig4 |>
  mutate(indicateur = recode(indicateur, temps_partiel = "Temps partiel", cadres = "Cadres",
                              cdd_ou_interim = "CDD ou intérim", independants = "Indépendants")) |>
  ggplot(aes(x = annee, y = part, color = indicateur)) +
  geom_line(linewidth = 1) +
  scale_color_brewer(palette = "Set2", name = NULL) +
  theme_minimal(base_size = 13) +
  labs(x = NULL, y = NULL,
       title = "Parts de CDD/intérim, d'indépendants, de cadres et de temps partiel",
       subtitle = "dans l'emploi, 1982-2019 (%)") +
  theme(legend.position = "bottom",
        panel.grid.minor = element_blank())

Figure 5 : catégories socioprofessionnelles en 2019

Code
fig5 |>
  filter(caracteristique != "Ensemble") |>
  select(caracteristique, Femmes = femmes, Hommes = hommes) |>
  pivot_longer(-caracteristique, names_to = "sexe", values_to = "part") |>
  mutate(caracteristique = fct_reorder(caracteristique, part)) |>
  ggplot(aes(x = caracteristique, y = part, fill = sexe)) +
  geom_col(position = position_dodge(width = 0.75), width = 0.7) +
  coord_flip() +
  scale_fill_manual(values = c("Femmes" = "#E8737A", "Hommes" = "#1B3F8B"), name = NULL) +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = NULL,
       title = "Catégories socioprofessionnelles par sexe en 2019",
       subtitle = "en % de l'emploi total") +
  theme(legend.position = "bottom",
        panel.grid.minor = element_blank(),
        panel.grid.major.y = element_blank())

Figure 6 : temps partiel et sous-emploi en 2019

Code
fig6 |>
  filter(sexe == "ensemble") |>
  mutate(caracteristique = fct_reorder(caracteristique, part),
         indicateur = recode(indicateur, temps_partiel = "Temps partiel", sous_emploi = "Sous-emploi")) |>
  ggplot(aes(x = caracteristique, y = part, fill = indicateur)) +
  geom_col(position = position_dodge(width = 0.75), width = 0.7) +
  coord_flip() +
  facet_wrap(~ section, scales = "free_y", ncol = 1) +
  scale_fill_manual(values = c("Temps partiel" = "#1B3F8B", "Sous-emploi" = "#E8737A"), name = NULL) +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = NULL,
       title = "Temps partiel et sous-emploi en 2019",
       subtitle = "selon la catégorie socioprofessionnelle et l'âge (%)") +
  theme(legend.position = "bottom",
        panel.grid.minor = element_blank(),
        panel.grid.major.y = element_blank())

Figure 7 : nombre de chômeurs et taux de chômage en 2019

Code
fig7 |>
  filter(age != "Ensemble") |>
  mutate(age = factor(age, levels = c("15-24 ans", "25-49 ans", "50 ans ou plus"))) |>
  select(age, `Chômage` = chomage_taux_ensemble, `Chômage de longue durée` = chomage_longue_duree_taux_ensemble) |>
  pivot_longer(-age, names_to = "type", values_to = "taux") |>
  ggplot(aes(x = age, y = taux, fill = type)) +
  geom_col(position = position_dodge(width = 0.75), width = 0.7) +
  scale_fill_manual(values = c("Chômage" = "#1B3F8B", "Chômage de longue durée" = "#E8737A"), name = NULL) +
  theme_minimal(base_size = 13) +
  labs(x = NULL, y = NULL,
       title = "Taux de chômage et de chômage de longue durée par âge, 2019",
       subtitle = "en %") +
  theme(legend.position = "bottom",
        panel.grid.minor = element_blank(),
        panel.grid.major.x = element_blank())

Figure 8 : taux de chômage par âge, 1982-2019

Code
fig8 |>
  mutate(age = recode(age, age_15_24 = "15-24 ans", age_25_49 = "25-49 ans",
                       age_50_plus = "50 ans ou plus", ensemble = "Ensemble")) |>
  ggplot(aes(x = annee, y = taux_chomage, color = age)) +
  geom_line(linewidth = 1) +
  scale_color_brewer(palette = "Set1", name = NULL) +
  theme_minimal(base_size = 13) +
  labs(x = NULL, y = NULL,
       title = "Taux de chômage par âge",
       subtitle = "1982-2019 (%)") +
  theme(legend.position = "bottom",
        panel.grid.minor = element_blank())

Figure 9 : taux de chômage par catégorie socioprofessionnelle et par diplôme, 2019

Code
fig9 |>
  filter(categorie != "Ensemble") |>
  mutate(categorie = fct_reorder(categorie, taux_chomage)) |>
  ggplot(aes(x = categorie, y = taux_chomage, fill = bloc)) +
  geom_col(show.legend = FALSE) +
  coord_flip() +
  facet_wrap(~ bloc, scales = "free_y", ncol = 1) +
  theme_minimal(base_size = 12) +
  labs(x = NULL, y = NULL,
       title = "Taux de chômage par catégorie socioprofessionnelle et par diplôme",
       subtitle = "2019 (%)") +
  theme(panel.grid.minor = element_blank(),
        panel.grid.major.y = element_blank())

Figure complémentaire 1 : taux d’emploi par tranche d’âge fine, 2019

Code
fc1 |>
  filter(tranche_age != "15-64 ans") |>
  ggplot(aes(x = tranche_age, y = taux_emploi)) +
  geom_col(fill = "#1B3F8B") +
  geom_text(aes(label = taux_emploi), vjust = -0.4, size = 3.5) +
  theme_minimal(base_size = 12) +
  labs(x = NULL, y = NULL,
       title = "Taux d'emploi par tranche d'âge quinquennale, 2019",
       subtitle = "en %") +
  theme(panel.grid.minor = element_blank(),
        panel.grid.major.x = element_blank())

Figure complémentaire 2 : répartition de l’emploi par CSP, 1982-2019

Code
fc2 |>
  mutate(csp = recode(csp,
    agriculteurs = "Agriculteurs",
    artisans_commercants_chefs_entreprise = "Artisans, commerçants, chefs d'entreprise",
    cadres = "Cadres", professions_intermediaires = "Professions intermédiaires",
    employes_qualifies = "Employés qualifiés", employes_non_qualifies = "Employés non qualifiés",
    ouvriers_qualifies = "Ouvriers qualifiés", ouvriers_non_qualifies = "Ouvriers non qualifiés",
    non_determine = "Non déterminé"
  )) |>
  ggplot(aes(x = annee, y = part, fill = csp)) +
  geom_area(position = "stack") +
  scale_fill_brewer(palette = "Paired", name = NULL) +
  theme_minimal(base_size = 12) +
  labs(x = NULL, y = NULL,
       title = "Répartition des personnes en emploi par catégorie socioprofessionnelle",
       subtitle = "1982-2019 (%)") +
  theme(legend.position = "bottom",
        legend.text = element_text(size = 8),
        panel.grid.minor = element_blank())