Les enseignants non permanents des établissements publics de l’enseignement supérieur - fr-esr-enseignants-nonpermanents-esr-public

Données - SIES

Source : SIES, data.enseignementsup-recherche.gouv.fr. Enseignants non permanents (doctorants contractuels, ATER, associés, invités, etc.) en activité dans les établissements publics sous tutelle du ministère, de 2012-13 à 2023-24.

Effectifs

Enseignants non permanents par rentrée

Code
`fr-esr-enseignants-nonpermanents-esr-public` |>
  group_by(rentree, etablissement_type) |>
  summarise(effectif = sum(effectif, na.rm = TRUE) / 1e3, .groups = "drop") |>
  mutate(date = as.Date(paste0(rentree, "-10-01"))) |>
  ggplot(aes(x = date, y = effectif, fill = etablissement_type)) +
  geom_area() + theme_minimal() + xlab("") + ylab("Milliers d'enseignants non permanents") +
  scale_x_date(date_breaks = "1 year", labels = date_format("%Y")) +
  theme(legend.position = "bottom", legend.title = element_blank())

Par catégorie de personnel

Code
`fr-esr-enseignants-nonpermanents-esr-public` |>
  mutate(cat = replace_na(categorie_pers_grp, "Non renseigné")) |>
  group_by(rentree, cat) |>
  summarise(effectif = sum(effectif, na.rm = TRUE) / 1e3, .groups = "drop") |>
  mutate(date = as.Date(paste0(rentree, "-10-01")), cat = str_wrap(cat, 30)) |>
  ggplot(aes(x = date, y = effectif, color = cat)) +
  geom_line() + theme_minimal() + xlab("") + ylab("Milliers d'enseignants") +
  scale_x_date(date_breaks = "2 years", labels = date_format("%Y")) +
  theme(legend.position = "bottom", legend.title = element_blank())

Par grande discipline

Code
`fr-esr-enseignants-nonpermanents-esr-public` |>
  filter(rentree == max(rentree)) |>
  mutate(grande_discipline = replace_na(grande_discipline, "Non renseignée")) |>
  group_by(grande_discipline) |>
  summarise(effectif = sum(effectif, na.rm = TRUE) / 1e3) |>
  mutate(grande_discipline = fct_reorder(grande_discipline, effectif)) |>
  ggplot(aes(x = grande_discipline, y = effectif)) +
  geom_col(fill = "#2166ac") + coord_flip() + theme_minimal() +
  xlab("") + ylab("Milliers d'enseignants (dernière rentrée)")

Part des femmes

Code
`fr-esr-enseignants-nonpermanents-esr-public` |>
  group_by(rentree, sexe) |>
  summarise(effectif = sum(effectif, na.rm = TRUE), .groups = "drop") |>
  group_by(rentree) |>
  mutate(part = effectif / sum(effectif), date = as.Date(paste0(rentree, "-10-01"))) |>
  filter(sexe == "Féminin") |>
  ggplot(aes(x = date, y = part)) +
  geom_line() + geom_point() + theme_minimal() + xlab("") + ylab("Part des femmes") +
  scale_x_date(date_breaks = "1 year", labels = date_format("%Y")) +
  scale_y_continuous(labels = percent_format(accuracy = 1), limits = c(0, NA))

Principaux établissements

Code
`fr-esr-enseignants-nonpermanents-esr-public` |>
  filter(rentree == max(rentree)) |>
  group_by(etablissement_actuel_lib) |>
  summarise(effectif = sum(effectif, na.rm = TRUE)) |>
  slice_max(effectif, n = 20) |>
  mutate(etablissement_actuel_lib = fct_reorder(str_trunc(etablissement_actuel_lib, 50), effectif)) |>
  ggplot(aes(x = etablissement_actuel_lib, y = effectif)) +
  geom_col(fill = "#e08214") + coord_flip() + theme_minimal() +
  xlab("") + ylab("Enseignants non permanents (dernière rentrée)")