Last data update: 01 oct. 2026, 22:51
Last compile: 01 oct. 2026, 22:53
Source : DGAC, data.gouv.fr. Trafic par segment (LSN_SEG : NAT intérieur, INTL international), faisceau (LSN_FSC) et pays (LSN_2). Passagers locaux : LSN_PAX.
`trafic-aerien-liaisons` |>
mutate(annee = year(date)) |>
group_by(annee, LSN_SEG) |>
summarise(pax = sum(LSN_PAX, na.rm = TRUE) / 1e6, .groups = "drop") |>
mutate(date = as.Date(paste0(annee, "-01-01")),
Segment = ifelse(LSN_SEG == "NAT", "Intérieur", "International")) |>
ggplot(aes(x = date, y = pax, fill = Segment)) +
geom_area() + theme_minimal() + xlab("") + ylab("Millions de passagers") +
scale_fill_manual(values = c("#2166ac", "#e08214")) +
scale_x_date(date_breaks = "5 years", labels = date_format("%Y")) +
theme(legend.position = "bottom", legend.title = element_blank())
faisceaux_lab <- c(MET_RAD = "Métropole, radiales", MET_TRA = "Métropole, transversales",
MET_OM = "Métropole - Outre-mer", OM_OM = "Intérieur Outre-mer",
MET_INTL = "International, Métropole", OM_INTL = "International, Outre-mer")
`trafic-aerien-liaisons` |>
mutate(annee = year(date)) |>
group_by(annee, LSN_FSC) |>
summarise(pax = sum(LSN_PAX, na.rm = TRUE) / 1e6, .groups = "drop") |>
mutate(date = as.Date(paste0(annee, "-01-01")), Faisceau = faisceaux_lab[LSN_FSC]) |>
ggplot(aes(x = date, y = pax, color = Faisceau)) +
geom_line() + theme_minimal() + xlab("") + ylab("Millions de passagers") +
scale_x_date(date_breaks = "5 years", labels = date_format("%Y")) +
theme(legend.position = "bottom", legend.title = element_blank())
`trafic-aerien-liaisons` |>
filter(LSN_FSC %in% c("MET_RAD", "MET_TRA")) |>
mutate(annee = year(date)) |>
group_by(annee, LSN_FSC) |>
summarise(pax = sum(LSN_PAX, na.rm = TRUE), .groups = "drop") |>
group_by(LSN_FSC) |>
mutate(indice = 100 * pax / pax[annee == 2000], Faisceau = faisceaux_lab[LSN_FSC],
date = as.Date(paste0(annee, "-01-01"))) |>
ggplot(aes(x = date, y = indice, color = Faisceau)) +
geom_line() + theme_minimal() + xlab("") + ylab("Passagers (2000 = 100)") +
scale_x_date(date_breaks = "5 years", labels = date_format("%Y")) +
theme(legend.position = "bottom", legend.title = element_blank())
`trafic-aerien-liaisons` |>
filter(LSN_SEG == "INTL") |>
mutate(annee = year(date)) |>
group_by(annee, LSN_2_CONT) |>
summarise(pax = sum(LSN_PAX, na.rm = TRUE) / 1e6, .groups = "drop") |>
mutate(date = as.Date(paste0(annee, "-01-01")), Continent = str_to_title(LSN_2_CONT)) |>
ggplot(aes(x = date, y = pax, fill = Continent)) +
geom_area() + theme_minimal() + xlab("") + ylab("Millions de passagers") +
scale_fill_viridis_d(end = 0.9) +
scale_x_date(date_breaks = "5 years", labels = date_format("%Y")) +
theme(legend.position = "bottom", legend.title = element_blank())
pays <- `trafic-aerien-liaisons` |>
filter(LSN_FSC == "MET_INTL", year(date) %in% c(2019, 2025), !grepl("_AUTRE", LSN_2)) |>
group_by(LSN_2, annee = year(date)) |>
summarise(pax = sum(LSN_PAX, na.rm = TRUE) / 1e6, .groups = "drop")
top <- pays |> filter(annee == 2025) |> slice_max(pax, n = 15) |> pull(LSN_2)
pays |>
filter(LSN_2 %in% top) |>
mutate(LSN_2 = fct_reorder(str_to_title(LSN_2), pax, .fun = max)) |>
ggplot(aes(x = LSN_2, y = pax, fill = factor(annee))) +
geom_col(position = "dodge") + coord_flip() + theme_minimal() +
xlab("") + ylab("Millions de passagers") +
scale_fill_manual(values = c("#9ecae1", "#08519c")) +
theme(legend.position = "bottom", legend.title = element_blank())
`trafic-aerien-liaisons` |>
mutate(annee = year(date)) |>
group_by(annee, LSN_SEG) |>
summarise(km = sum(LSN_PKT, na.rm = TRUE) / sum(LSN_PAX, na.rm = TRUE), .groups = "drop") |>
mutate(date = as.Date(paste0(annee, "-01-01")),
Segment = ifelse(LSN_SEG == "NAT", "Intérieur", "International")) |>
ggplot(aes(x = date, y = km, color = Segment)) +
geom_line() + theme_minimal() + xlab("") + ylab("km par passager") +
scale_x_date(date_breaks = "5 years", labels = date_format("%Y")) +
scale_y_continuous(labels = fr) +
theme(legend.position = "bottom", legend.title = element_blank())