Last data update: 11 oct. 2026, 21:44
Last compile: 11 oct. 2026, 21:46
Source : SIES, data.enseignementsup-recherche.gouv.fr. Vœux, capacités d’accueil et candidats admis par formation pour la session 2025 de Parcoursup.
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.
`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())
`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")
`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())
`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))
`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))
`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())
`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")