80 ans de prénoms - de plus en plus de diversité - IP2127

Données - INSEE

Figure 1 : top 10 des prénoms les plus donnés en 2025

Code
fig1 |>
  mutate(prenom = fct_reorder(prenom, nombre)) |>
  ggplot(aes(x = prenom, y = nombre, fill = sexe)) +
  geom_col(show.legend = FALSE) +
  coord_flip() +
  facet_wrap(~ sexe, scales = "free_y") +
  scale_fill_manual(values = c("Filles" = "#E8737A", "Garçons" = "#1B3F8B")) +
  theme_minimal(base_size = 12) +
  labs(x = NULL, y = NULL,
       title = "Top 10 des prénoms les plus donnés en 2025",
       subtitle = "en nombre de naissances") +
  theme(panel.grid.minor = element_blank(),
        panel.grid.major.y = element_blank())

Figure 2 : nombre de prénoms différents donnés, 1946-2025

Code
fig2 |>
  mutate(sexe = recode(sexe, filles = "Filles", garcons = "Garçons")) |>
  ggplot(aes(x = annee, y = nb_prenoms_pour_10000, color = sexe)) +
  geom_line(linewidth = 1) +
  scale_color_manual(values = c("Filles" = "#E8737A", "Garçons" = "#1B3F8B"), name = NULL) +
  theme_minimal(base_size = 13) +
  labs(x = NULL, y = NULL,
       title = "Évolution du nombre de prénoms différents donnés",
       subtitle = "pour 10 000 naissances, par sexe, 1946-2025") +
  theme(legend.position = "bottom",
        panel.grid.minor = element_blank())

Figure 3 : prénoms intemporels, 1946-2025

Code
fig3 |>
  mutate(sexe = recode(sexe, filles = "Filles", garcons = "Garçons")) |>
  ggplot(aes(x = annee, y = nb_pour_10000, color = sexe)) +
  geom_line(linewidth = 1) +
  scale_color_manual(values = c("Filles" = "#E8737A", "Garçons" = "#1B3F8B"), name = NULL) +
  theme_minimal(base_size = 13) +
  labs(x = NULL, y = NULL,
       title = "Filles et garçons portant un prénom intemporel",
       subtitle = "pour 10 000 naissances par an, 1946-2025") +
  theme(legend.position = "bottom",
        panel.grid.minor = element_blank())

Figure 4 : top 50 des prénoms les plus donnés par génération

Code
# Petit équivalent maison de tidytext::reorder_within() / scale_x_reordered()
# (éviter une dépendance supplémentaire pour un seul graphique) : rend
# chaque facette triée indépendamment malgré des prénoms qui se répètent
# d'une génération à l'autre.
reorder_within <- function(x, by, within) {
  new_x <- paste(x, within, sep = "___")
  stats::reorder(new_x, by)
}
scale_x_reordered <- function(...) {
  ggplot2::scale_x_discrete(labels = function(x) sub("___.+$", "", x), ...)
}

fig4 |>
  filter(!is.na(generation)) |>
  group_by(generation, sexe) |>
  slice_max(nombre, n = 10) |>
  ungroup() |>
  mutate(prenom = str_to_title(prenom),
         prenom = reorder_within(prenom, nombre, paste(generation, sexe))) |>
  ggplot(aes(x = prenom, y = nombre, fill = sexe)) +
  geom_col(show.legend = FALSE) +
  coord_flip() +
  scale_x_reordered() +
  facet_wrap(~ generation + sexe, scales = "free", ncol = 2) +
  scale_fill_manual(values = c("Filles" = "#E8737A", "Garçons" = "#1B3F8B")) +
  theme_minimal(base_size = 9) +
  labs(x = NULL, y = NULL,
       title = "Top 10 des prénoms les plus donnés par génération",
       subtitle = "(sur 50 recensés par génération et par sexe dans la publication)") +
  theme(panel.grid.minor = element_blank(),
        panel.grid.major.y = element_blank(),
        strip.text = element_text(size = 8))

Figure encadré : prénoms mixtes, 1946-2025

Code
fig_encadre |>
  select(annee, `Nombre de prénoms mixtes` = nb_prenoms_mixtes,
         `Part de bébés porteurs d'un prénom mixte` = part_bebes_prenom_mixte) |>
  pivot_longer(-annee, names_to = "indicateur", values_to = "valeur") |>
  ggplot(aes(x = annee, y = valeur, color = indicateur)) +
  geom_line(linewidth = 1) +
  facet_wrap(~ indicateur, scales = "free_y", ncol = 1) +
  scale_color_brewer(palette = "Set2", guide = "none") +
  theme_minimal(base_size = 12) +
  labs(x = NULL, y = NULL,
       title = "Prénoms mixtes",
       subtitle = "pour 10 000 naissances, 1946-2025") +
  theme(panel.grid.minor = element_blank())

Tableau complémentaire : top 5 des prénoms par région, 2025

Code
tc |>
  filter(rang == 1) |>
  select(region, sexe, prenom, effectif) |>
  arrange(sexe, desc(effectif)) |>
  gt(groupname_col = "sexe") |>
  tab_header(title = "Prénom le plus donné par région et par sexe, 2025")
Prénom le plus donné par région et par sexe, 2025
region prenom effectif
Féminin
Île-de-France Alma 615
Hauts-de-France Ambre 385
Auvergne-Rhône-Alpes Jade 355
Nouvelle-Aquitaine Louise 305
Occitanie Louise 285
Grand Est Jade 240
Provence-Alpes-Côte d'Azur Alba 235
Pays de la Loire Adèle 230
Normandie Jade 205
Bretagne Louise 195
Bourgogne-Franche-Comté Louise 145
Centre-Val de Loire Ambre 120
La Réunion Inaya 70
Mayotte Inaya 35
Martinique Inaya 20
Guyane Inaya 20
Corse Alba 20
Guadeloupe Luna 15
Masculin
Île-de-France Gabriel 980
Auvergne-Rhône-Alpes Gabriel 490
Hauts-de-France Gabriel 445
Nouvelle-Aquitaine Gabriel 400
Provence-Alpes-Côte d'Azur Gabriel 395
Occitanie Gabriel 390
Grand Est Gabriel 370
Normandie Gabriel 250
Pays de la Loire Gabriel 245
Bretagne Malo 215
Bourgogne-Franche-Comté Gabriel 175
Centre-Val de Loire Gabriel 155
La Réunion Kaïs 75
Guyane Jayden 40
Mayotte Rayane 40
Martinique Noah 25
Guadeloupe Noah 20
Corse Gabriel 20