Last data update: 19 sept. 2026, 11:08
Last compile: 24 sept. 2026, 01:06
fig1 |>
select(annee, all_of(postes_depense)) |>
pivot_longer(-annee, names_to = "poste", values_to = "depense") |>
mutate(poste = recode(poste, !!!postes_labels), poste = fct_relevel(poste, postes_labels)) |>
ggplot(aes(x = factor(annee), y = depense, fill = poste)) +
geom_col() +
scale_fill_brewer(palette = "Set2", name = NULL) +
theme_minimal(base_size = 11) +
labs(x = NULL, y = "€ 2017",
title = "Dépense de transports des ménages",
subtitle = "2005, 2011, 2017") +
theme(legend.position = "bottom", panel.grid.minor = element_blank()) +
guides(fill = guide_legend(ncol = 2))
fig1 |>
ggplot(aes(x = annee, y = part_revenu_disponible)) +
geom_col(fill = "#1B3F8B") +
theme_minimal(base_size = 12) +
labs(x = NULL, y = "%",
title = "Part de la dépense de transports dans le revenu disponible",
subtitle = "2005, 2011, 2017") +
theme(panel.grid.minor = element_blank())
ordre_aires <- c("Aire de Paris", "700 000 habitants ou plus (hors Paris)",
"200 000 à moins de 700 000 habitants", "50 000 à moins de 200 000 habitants",
"Moins de 50 000 habitants", "Communes hors attraction des villes")
fig2 |>
select(groupe, all_of(postes_depense)) |>
pivot_longer(-groupe, names_to = "poste", values_to = "depense") |>
mutate(poste = recode(poste, !!!postes_labels), poste = fct_relevel(poste, postes_labels),
groupe = fct_relevel(groupe, ordre_aires)) |>
ggplot(aes(x = groupe, y = depense, fill = poste)) +
geom_col() +
coord_flip() +
scale_fill_brewer(palette = "Set2", name = NULL) +
theme_minimal(base_size = 10) +
labs(x = NULL, y = "€",
title = "Dépense de transports selon la taille de l'aire d'attraction des villes",
subtitle = "2017") +
theme(legend.position = "bottom", panel.grid.minor = element_blank()) +
guides(fill = guide_legend(ncol = 2))
fig2 |>
mutate(groupe = fct_relevel(groupe, ordre_aires)) |>
ggplot(aes(x = groupe, y = part_revenu_disponible)) +
geom_col(fill = "#1B3F8B") +
coord_flip() +
theme_minimal(base_size = 10) +
labs(x = NULL, y = "%",
title = "Part de la dépense de transports dans le revenu disponible",
subtitle = "selon la taille de l'aire d'attraction des villes, 2017") +
theme(panel.grid.minor = element_blank())
ordre_communes <- c("Communes des pôles", "dont communes-centres", "dont autres communes en pôle",
"Communes des couronnes", "Communes hors attraction des villes")
fig3 |>
mutate(groupe = fct_relevel(groupe, ordre_communes)) |>
ggplot(aes(x = groupe, y = depense_transports)) +
geom_col(fill = "#1B3F8B") +
coord_flip() +
theme_minimal(base_size = 10) +
labs(x = NULL, y = "€",
title = "Dépense de transports selon la catégorie de commune de résidence",
subtitle = "2017") +
theme(panel.grid.minor = element_blank())
fig4 |>
filter(section == "Selon le niveau de vie du ménage") |>
select(groupe, all_of(postes_depense)) |>
mutate(groupe = fct_inorder(groupe)) |>
pivot_longer(-groupe, names_to = "poste", values_to = "depense") |>
mutate(poste = recode(poste, !!!postes_labels), poste = fct_relevel(poste, postes_labels)) |>
ggplot(aes(x = groupe, y = depense, fill = poste)) +
geom_col() +
scale_fill_brewer(palette = "Set2", name = NULL) +
theme_minimal(base_size = 9) +
labs(x = NULL, y = "€",
title = "Dépense de transports selon le niveau de vie du ménage",
subtitle = "2017") +
theme(legend.position = "bottom", axis.text.x = element_text(angle = 30, hjust = 1),
panel.grid.minor = element_blank()) +
guides(fill = guide_legend(ncol = 2))
fig4 |>
filter(section == "Selon la catégorie socioprofessionnelle du ménage") |>
mutate(groupe = fct_reorder(groupe, depense_transports)) |>
ggplot(aes(x = groupe, y = depense_transports)) +
geom_col(fill = "#1B3F8B") +
coord_flip() +
theme_minimal(base_size = 10) +
labs(x = NULL, y = "€",
title = "Dépense de transports selon la catégorie socioprofessionnelle du ménage",
subtitle = "2017") +
theme(panel.grid.minor = element_blank())
fig5 |>
filter(section == "Selon le type de ménage") |>
mutate(groupe = fct_inorder(groupe)) |>
ggplot(aes(x = groupe, y = part_revenu_disponible)) +
geom_col(fill = "#1B3F8B") +
theme_minimal(base_size = 11) +
labs(x = NULL, y = "%",
title = "Part de la dépense de transports dans le revenu disponible",
subtitle = "selon la configuration familiale, 2017") +
theme(axis.text.x = element_text(angle = 20, hjust = 1), panel.grid.minor = element_blank())
fig5 |>
filter(section == "Selon le nombre de personnes du ménage") |>
mutate(groupe = fct_inorder(groupe)) |>
ggplot(aes(x = groupe, y = depense_transports)) +
geom_col(fill = "#1B3F8B") +
theme_minimal(base_size = 11) +
labs(x = NULL, y = "€",
title = "Dépense de transports selon le nombre de personnes du ménage",
subtitle = "2017") +
theme(axis.text.x = element_text(angle = 20, hjust = 1), panel.grid.minor = element_blank())
plot_figurec1_section <- function(section_filtre, titre) {
figc1 |>
filter(section == section_filtre) |>
select(groupe, part_aucune_voiture, part_une_voiture, part_deux_voitures_ou_plus) |>
pivot_longer(-groupe, names_to = "nb_voitures", values_to = "part") |>
mutate(nb_voitures = recode(nb_voitures, part_aucune_voiture = "Aucune voiture",
part_une_voiture = "Une voiture",
part_deux_voitures_ou_plus = "Deux voitures ou plus"),
nb_voitures = fct_relevel(nb_voitures, "Aucune voiture", "Une voiture", "Deux voitures ou plus"),
groupe = fct_rev(fct_inorder(groupe))) |>
ggplot(aes(x = groupe, y = part, fill = nb_voitures)) +
geom_col() +
coord_flip() +
scale_fill_manual(values = c("Aucune voiture" = "#E8737A", "Une voiture" = "#8FA8D8",
"Deux voitures ou plus" = "#1B3F8B"), name = NULL) +
theme_minimal(base_size = 11) +
labs(x = NULL, y = "%", title = "Équipement automobile des ménages", subtitle = titre) +
theme(legend.position = "bottom", panel.grid.minor = element_blank())
}plot_figurec1_section("Taille de l’aire d’attraction des villes",
"selon la taille de l'aire d'attraction des villes, 2017")
plot_figurec1_section("Niveau de vie", "selon le niveau de vie, 2017")
plot_figurec1_section("Catégorie socioprofessionnelle du ménage",
"selon la catégorie socioprofessionnelle du ménage, 2017")
figc1 |>
select(section, groupe, or_pas_de_voiture_modele1, or_pas_de_voiture_modele2) |>
filter(!is.na(or_pas_de_voiture_modele1) | !is.na(or_pas_de_voiture_modele2)) |>
gt(groupname_col = "section") |>
tab_header(title = "Probabilité de ne pas avoir de voiture (odds ratio)",
subtitle = "modèle 1 (catégorie de commune ou taille d'aire), modèle 2 (autres caractéristiques), 2017") |>
cols_label(groupe = "", or_pas_de_voiture_modele1 = "Modèle 1", or_pas_de_voiture_modele2 = "Modèle 2") |>
sub_missing(missing_text = "")| Probabilité de ne pas avoir de voiture (odds ratio) | ||
| modèle 1 (catégorie de commune ou taille d'aire), modèle 2 (autres caractéristiques), 2017 | ||
| Modèle 1 | Modèle 2 | |
|---|---|---|
| Catégorie de commune dans l’aire d’attraction des villes | ||
| Pôles | 4.1849999999999996 | |
| Communes-centres | 4.2560000000000002 | |
| Autres communes en pôle | 4.0750000000000002 | |
| Communes des couronnes | 1.0820000000000001 | |
| Communes hors attraction des villes | Réf. | |
| Taille de l’aire d’attraction des villes | ||
| Aire de Paris | 9.7479999999999993 | |
| 700 000 habitants ou plus (hors Paris) | 2.8519999999999999 | |
| 200 000 à moins de 700 000 habitants | 2.2309999999999999 | |
| 50 000 à moins de 200 000 habitants | 1.1499999999999999 | |
| Moins de 50 000 habitants | 1.3080000000000001 | |
| Commune hors attraction des villes | Réf. | |
| Niveau de vie | ||
| Inférieur au 1er décile (10 % les plus modestes) | 2.4319999999999999 | 2.6339999999999999 |
| Du 1er au 2e décile | 2.2559999999999998 | 2.3719999999999999 |
| Du 2e au 3e décile | 1.657 | 1.788 |
| Du 3e au 4e décile | 1.4590000000000001 | 1.5029999999999999 |
| Du 4e au 5e décile | Réf. | Réf. |
| Du 5e au 6e décile | 0.97699999999999998 | 0.85 |
| Du 6e au 7e décile | 0.95299999999999996 | 0.84599999999999997 |
| Du 7e au 8e décile | 0.92 | 0.77500000000000002 |
| Du 8e au 9e décile | 0.88200000000000001 | 0.68500000000000005 |
| Supérieur au 9e décile (10 % les plus aisés) | 1.1890000000000001 | 0.91600000000000004 |
| Catégorie socioprofessionnelle du ménage | ||
| Ménages à dominante cadre | 2.0459999999999998 | 1.806 |
| Ménages à dominante intermédiaire ou cadre | 1.869 | 1.7050000000000001 |
| Ménages à dominante employée ou intermédiaire | 1.2569999999999999 | 1.234 |
| Ménages à dominante petit indépendant | 1.3049999999999999 | 1.214 |
| Ménages à dominante ouvrière | Réf. | Réf. |
| Ménages mono-actifs d’employé ou d’ouvrier | 2.024 | 2.137 |
| Ménages inactifs | 3.63 | 4.1159999999999997 |
| Âge de la personne de référence | ||
| Moins de 30 ans | 1.2589999999999999 | 1.3959999999999999 |
| De 30 à moins de 50 ans | Réf. | Réf. |
| De 50 à moins de 65 ans | 0.59799999999999998 | 0.56699999999999995 |
| 65 ans ou plus | 0.81599999999999995 | 0.78 |
| En couple | ||
| Non (personne seule ou famille monoparentale) | Réf. | Réf. |
| Oui (couple avec ou sans enfant) | 0.23499999999999999 | 0.23 |
| Autres types de ménage | 0.81200000000000006 | 0.76500000000000001 |
| Nombre d’enfants | ||
| Aucun | Réf. | Réf. |
| 1 | 0.66700000000000004 | 0.64400000000000002 |
| 2 | 0.54600000000000004 | 0.47599999999999998 |
| 3 ou plus | 0.68100000000000005 | 0.61 |
| Nombre de personnes en emploi | ||
| Aucune | Réf. | Réf. |
| 1 | 0.66500000000000004 | 0.61299999999999999 |
| 2 | 0.64700000000000002 | 0.57699999999999996 |
| 3 ou plus | 0.623 | 0.48299999999999998 |
| Diplôme de la personne de référence | ||
| Bac + 2 ou supérieur | 1.351 | 1.294 |
| Baccalauréat ou équivalent | Réf. | Réf. |
| CAP, BEP, Brevet des collèges | 1.18 | 1.1579999999999999 |
| Aucun diplôme ou CEP ou diplôme inconnu | 2.6779999999999999 | 2.484 |