Parcoursup 2025 - vœux de poursuite d’études et de réorientation dans l’enseignement supérieur - fr-esr-parcoursup

Données - SIES

Source : SIES, data.enseignementsup-recherche.gouv.fr. Vœux, capacités d’accueil et candidats admis par formation pour la session 2025 de Parcoursup.

Parcoursup 2025

Vœux et admissions par formation. voe_tot : vœux ; capa_fin : capacité d’accueil ; acc_tot : candidats ayant accepté une proposition ; pct_bours : part de boursiers parmi les admis.

Vœux et admissions par type de formation

Code
`fr-esr-parcoursup` |>
  group_by(fili) |>
  summarise(`Vœux` = sum(voe_tot, na.rm = TRUE), `Candidats admis` = sum(acc_tot, na.rm = TRUE), `Places` = sum(capa_fin, na.rm = TRUE)) |>
  pivot_longer(-fili) |>
  mutate(fili = fct_reorder(fili, value, .fun = max)) |>
  ggplot(aes(x = fili, y = value / 1e3, fill = name)) +
  geom_col(position = "dodge") + coord_flip() + theme_minimal() + xlab("") + ylab("Milliers") +
  theme(legend.position = "bottom", legend.title = element_blank())

Vœux par place

Code
`fr-esr-parcoursup` |>
  group_by(fili) |>
  summarise(ratio = sum(voe_tot, na.rm = TRUE) / sum(capa_fin, na.rm = TRUE)) |>
  mutate(fili = fct_reorder(fili, ratio)) |>
  ggplot(aes(x = fili, y = ratio)) +
  geom_col(fill = "#e08214") + coord_flip() + theme_minimal() + xlab("") + ylab("Vœux par place")

Origine scolaire des admis

Code
`fr-esr-parcoursup` |>
  group_by(fili) |>
  summarise(`Bac général` = sum(acc_bg, na.rm = TRUE), `Bac technologique` = sum(acc_bt, na.rm = TRUE),
            `Bac professionnel` = sum(acc_bp, na.rm = TRUE)) |>
  pivot_longer(-fili) |>
  group_by(fili) |>
  mutate(part = value / sum(value)) |>
  ggplot(aes(x = fili, y = part, fill = name)) +
  geom_col() + coord_flip() + theme_minimal() + xlab("") + ylab("Part des admis par série de bac") +
  scale_y_continuous(labels = percent_format(accuracy = 1)) +
  theme(legend.position = "bottom", legend.title = element_blank())

Boursiers parmi les admis

Code
`fr-esr-parcoursup` |>
  filter(!is.na(pct_bours), acc_tot > 0) |>
  group_by(fili) |>
  summarise(part = weighted.mean(pct_bours, acc_tot) / 100) |>
  mutate(fili = fct_reorder(fili, part)) |>
  ggplot(aes(x = fili, y = part)) +
  geom_col(fill = "#2166ac") + coord_flip() + theme_minimal() + xlab("") +
  ylab("Part de boursiers parmi les admis (moyenne pondérée)") +
  scale_y_continuous(labels = percent_format(accuracy = 1))

Part des filles

Code
`fr-esr-parcoursup` |>
  filter(!is.na(pct_f), acc_tot > 0) |>
  group_by(fili) |>
  summarise(part = weighted.mean(pct_f, acc_tot) / 100) |>
  mutate(fili = fct_reorder(fili, part)) |>
  ggplot(aes(x = fili, y = part)) +
  geom_col(fill = "#2166ac") + geom_hline(yintercept = 0.5, linetype = "dashed") + coord_flip() +
  theme_minimal() + xlab("") + ylab("Part des filles parmi les admis (moyenne pondérée)") +
  scale_y_continuous(labels = percent_format(accuracy = 1))

Formations sélectives et non sélectives

Code
`fr-esr-parcoursup` |>
  group_by(select_form, contrat_etab) |>
  summarise(admis = sum(acc_tot, na.rm = TRUE) / 1e3, .groups = "drop") |>
  ggplot(aes(x = contrat_etab, y = admis, fill = select_form)) +
  geom_col() + theme_minimal() + xlab("") + ylab("Milliers de candidats admis") +
  theme(legend.position = "bottom", legend.title = element_blank())

Par région

Code
`fr-esr-parcoursup` |>
  group_by(region_etab_aff) |>
  summarise(admis = sum(acc_tot, na.rm = TRUE) / 1e3) |>
  mutate(region_etab_aff = fct_reorder(region_etab_aff, admis)) |>
  ggplot(aes(x = region_etab_aff, y = admis)) +
  geom_col(fill = "#2166ac") + coord_flip() + theme_minimal() + xlab("") + ylab("Milliers de candidats admis")