source(here::here("_rinit.R"))source(here::here("code", "basic_functions.R")) # dataset_info_lines(), related_data()invisible(Sys.setlocale("LC_TIME", "fr_FR.UTF-8"))# cd ~/iCloud/website/data/depp; /usr/local/bin/R -e 'quarto::quarto_render("nombre-moyen-eleves-par-division.qmd")'knitr::opts_chunk$set(echo =TRUE, message =FALSE, warning =FALSE,fig.width =8, fig.height =4.6, dpi =150)div_path <- here::here("data", "depp", "nombre-moyen-eleves-par-division.parquet")div <- arrow::read_parquet(div_path)# Deux colonnes 2011 (« hors Mayotte » / « avec Mayotte ») : on garde la# variante « hors Mayotte » pour la continuité avec les années antérieures.div1 <- dplyr::filter(div, is.na(mention) | mention =="hors Mayotte")annee_min <-min(div1$annee); annee_max <-max(div1$annee)theme_depp <- ggplot2::theme_minimal(base_size =12) + ggplot2::theme(plot.title = ggplot2::element_text(face ="bold"),plot.subtitle = ggplot2::element_text(colour ="grey35"),panel.grid.minor = ggplot2::element_blank(),plot.title.position ="plot",legend.position ="bottom")pal_secteur <-c("PUBLIC"="#2b6cb0", "PRIVÉ SOUS CONTRAT"="#dd6b20","PUBLIC + PRIVÉ SOUS CONTRAT"="grey20")
Le nombre moyen d’élèves par division (par classe) dans le second degré, selon le niveau de formation et le secteur (public / privé sous contrat), de la rentrée 2005 à la rentrée 2025. Source : DEPP ; champ France (avec Mayotte à partir de 2011).
Ensemble du second degré, par secteur
Code
div1 |> dplyr::filter(niveau_formation =="Total") |>ggplot(aes(annee, valeur, colour = secteur)) +geom_line(linewidth =0.9) +geom_point(size =1.6) +scale_colour_manual(values = pal_secteur, name =NULL) +scale_x_continuous(breaks = scales::breaks_width(3)) +labs(title ="Nombre moyen d'élèves par division dans le second degré",subtitle ="Ensemble des formations, par secteur",x =NULL, y ="élèves / division") + theme_depp
Par niveau de formation (public + privé)
Code
div1 |> dplyr::filter(secteur =="PUBLIC + PRIVÉ SOUS CONTRAT", niveau_formation !="Total") |>ggplot(aes(annee, valeur, colour = niveau_formation)) +geom_line(linewidth =0.9) +scale_colour_brewer(palette ="Dark2", name =NULL) +scale_x_continuous(breaks = scales::breaks_width(3)) +labs(title ="Nombre moyen d'élèves par division selon le niveau de formation",subtitle ="Public + privé sous contrat", x =NULL, y ="élèves / division") + theme_depp + ggplot2::guides(colour = ggplot2::guide_legend(nrow =2))
Dernière rentrée
Code
div1 |> dplyr::filter(annee == annee_max, niveau_formation !="Total") |> dplyr::mutate(niveau_formation = forcats::fct_reorder(niveau_formation, valeur)) |>ggplot(aes(valeur, niveau_formation, fill = secteur)) +geom_col(position = ggplot2::position_dodge(width =0.75), width =0.7) +scale_fill_manual(values = pal_secteur, name =NULL) +labs(title =sprintf("Nombre moyen d'élèves par division à la rentrée %d", annee_max),x ="élèves / division", y =NULL) + theme_depp
tibble::tibble(``=c("Série", "Producteur", "Champ", "Fichier", "Mise à jour", "Observations"),``=c("[Le nombre moyen d'élèves par division](https://www.education.gouv.fr/les-effectifs-du-second-degre-1039) — DEPP","Direction de l'Évaluation, de la Prospective et de la Performance (DEPP), ministère de l'Éducation nationale","France (avec Mayotte à partir de 2011) ; secteurs public et privé sous contrat",sprintf("`data/depp/nombre-moyen-eleves-par-division.parquet` (%s ko)", round(file.size(div_path) /1024)),format(as.Date(file.mtime(div_path)), "%d %B %Y"),sprintf("%d lignes, %d–%d", nrow(div), min(div$annee), max(div$annee)) )) |> gt::gt() |> gt::fmt_markdown(columns =``) |> gt::tab_options(table.width ="100%", column_labels.hidden =TRUE)