Last data update: 29 sept. 2026, 17:42
Last compile: 29 sept. 2026, 17:43
# La feuille "FPE toutes quotités, 2014+" est en euros mensuels, les deux
# autres en euros annuels (cf. SOMMAIRE de la source) : on annualise la
# première (x12) pour rendre les trois séries comparables.
fig2 |>
filter(categorie == "Ensemble",
indicateur %in% c("Salaire brut", "Traitement brut de base")) |>
mutate(valeur = if_else(periode == "FPE toutes quotités, 2014+", valeur * 12, valeur)) |>
ggplot(aes(x = annee, y = valeur, color = periode)) +
geom_line(linewidth = 1) +
geom_point() +
scale_color_brewer(palette = "Set1", name = NULL) +
theme_minimal(base_size = 10) +
labs(x = NULL, y = "€ par an",
title = "Salaire moyen, ensemble des fonctionnaires civils de l'État",
subtitle = "selon la source et le champ, 1994-2019 (séries mensuelles annualisées)") +
theme(legend.position = "bottom", panel.grid.minor = element_blank()) +
guides(color = guide_legend(ncol = 1))
fig2 |>
filter(periode == "FPE toutes quotités, 2014+", indicateur == "Salaire brut",
categorie %in% c("Ensemble des cadres de catégorie A (A et A+)", "Attachés et inspecteurs",
"Ingénieurs de l'État et assimilés", "Professeurs certifiés et agrégés")) |>
ggplot(aes(x = annee, y = valeur, color = categorie)) +
geom_line(linewidth = 1) +
scale_color_brewer(palette = "Set2", name = NULL) +
theme_minimal(base_size = 9) +
labs(x = NULL, y = "€ par mois",
title = "Salaire moyen par catégorie socioprofessionnelle",
subtitle = "fonction publique de l'État, toutes quotités, depuis 2014") +
theme(legend.position = "bottom", panel.grid.minor = element_blank()) +
guides(color = guide_legend(ncol = 1))
fig56 |>
filter(bloc == "En moyenne annuelle (en %)",
indicateur %in% c("Prix y.c. tabac", "dont salaire moyen (brut) des ministères",
"dont RMPP (brute) des ministères")) |>
ggplot(aes(x = annee, y = valeur, color = indicateur)) +
geom_line(linewidth = 1) +
geom_hline(yintercept = 0, color = "grey30") +
scale_color_brewer(palette = "Set1", name = NULL) +
theme_minimal(base_size = 9) +
labs(x = NULL, y = "% (glissement annuel)",
title = "Évolution des prix et des rémunérations des agents de l'État",
subtitle = "moyenne annuelle, ministères") +
theme(legend.position = "bottom", panel.grid.minor = element_blank()) +
guides(color = guide_legend(ncol = 1))
fig7 |>
filter(population == "Ensemble des agents des ministères") |>
ggplot(aes(x = annee, y = valeur, color = indicateur)) +
geom_line(linewidth = 1) +
scale_color_manual(values = c("salaire moyen brut" = "#1B3F8B", "salaire moyen net" = "#E8737A"), name = NULL) +
theme_minimal(base_size = 11) +
labs(x = NULL, y = "€ par mois",
title = "Salaire mensuel moyen des agents civils des ministères",
subtitle = "brut et net, 2004-2019") +
theme(legend.position = "bottom", panel.grid.minor = element_blank())
fig910 |>
filter(perimetre == "Ministères",
indicateur %in% c("Inflation (y.c. tabac)", "Salaire moyen (brut)",
"RMPP brute (structure constante)", "RMPP brute (effet de carrière)")) |>
ggplot(aes(x = annee, y = valeur, color = indicateur)) +
geom_line(linewidth = 1) +
geom_hline(yintercept = 0, color = "grey30") +
scale_color_brewer(palette = "Set1", name = NULL) +
theme_minimal(base_size = 9) +
labs(x = NULL, y = "%",
title = "Facteurs d'évolution du salaire moyen et de la RMPP",
subtitle = "agents civils des ministères, depuis 1998") +
theme(legend.position = "bottom", panel.grid.minor = element_blank()) +
guides(color = guide_legend(ncol = 1))
tranches_ordre <- c("<310", "310-319", "320-329", "330-339", "340-349", "350-359", "360-369",
"370-379", "380-399", "400-419", "420-439", "440-459", "460-479", "480-499",
"500-549", "550-599", "600-649", "650-699", "700-749", ">749", "Hors échelle",
"Indéterminé")
fig11 |>
filter(groupe %in% c("catégorie A", "catégorie B", "catégorie C"), annee == max(annee)) |>
mutate(tranche = fct_relevel(tranche, tranches_ordre)) |>
group_by(groupe) |>
mutate(part = valeur / sum(valeur)) |>
ungroup() |>
ggplot(aes(x = tranche, y = part, fill = groupe)) +
geom_col(position = "dodge") +
scale_fill_brewer(palette = "Set2", name = NULL) +
scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
theme_minimal(base_size = 8) +
labs(x = "Indice majoré", y = NULL,
title = "Répartition des fonctionnaires civils par tranche d'indice majoré",
subtitle = "par catégorie hiérarchique, dernière année disponible") +
theme(legend.position = "bottom", panel.grid.minor = element_blank(),
axis.text.x = element_text(angle = 45, hjust = 1))
fig11 |>
filter(groupe %in% c("Femmes", "Hommes"), annee == max(annee)) |>
mutate(tranche = fct_relevel(tranche, tranches_ordre)) |>
group_by(groupe) |>
mutate(part = valeur / sum(valeur)) |>
ungroup() |>
ggplot(aes(x = tranche, y = part, fill = groupe)) +
geom_col(position = "dodge") +
scale_fill_manual(values = c("Femmes" = "#E8737A", "Hommes" = "#1B3F8B"), name = NULL) +
scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
theme_minimal(base_size = 8) +
labs(x = "Indice majoré", y = NULL,
title = "Répartition des fonctionnaires civils par tranche d'indice majoré",
subtitle = "selon le sexe, dernière année disponible") +
theme(legend.position = "bottom", panel.grid.minor = element_blank(),
axis.text.x = element_text(angle = 45, hjust = 1))
v317 |>
filter(indicateur %in% c("ITB-GI Ensemble", "Catégorie A", "Catégorie B", "Catégorie C")) |>
group_by(indicateur) |>
arrange(annee) |>
mutate(valeur_cumulee = cumprod(1 + valeur / 100)) |>
ungroup() |>
ggplot(aes(x = annee, y = valeur_cumulee, color = indicateur)) +
geom_line(linewidth = 1) +
scale_color_brewer(palette = "Set1", name = NULL) +
theme_minimal(base_size = 10) +
labs(x = NULL, y = "Base 1 en 2001",
title = "Évolution cumulée de l'indice de traitement net-grille indiciaire",
subtitle = "par catégorie hiérarchique, depuis 2001") +
theme(legend.position = "bottom", panel.grid.minor = element_blank())
gipa |>
filter(indicateur == "Bénéficiaires de la GIPA") |>
ggplot(aes(x = annee, y = valeur)) +
geom_col(fill = "#1B3F8B") +
theme_minimal(base_size = 11) +
labs(x = NULL, y = "Nombre de bénéficiaires",
title = "Bénéficiaires de la garantie individuelle du pouvoir d'achat",
subtitle = "2008-2019") +
theme(panel.grid.minor = element_blank())
gipa |>
filter(indicateur %in% c("Moyenne", "Médiane", "1er quartile", "3e quartile")) |>
mutate(indicateur = fct_relevel(indicateur, "1er quartile", "Médiane", "Moyenne", "3e quartile")) |>
ggplot(aes(x = annee, y = valeur, color = indicateur)) +
geom_line(linewidth = 1) +
scale_color_brewer(palette = "Set1", name = NULL) +
theme_minimal(base_size = 10) +
labs(x = NULL, y = "€",
title = "Dispersion des montants moyens de GIPA versés",
subtitle = "depuis 2012") +
theme(legend.position = "bottom", panel.grid.minor = element_blank())