Décès et mortalité - DECES-MORTALITE
Données - INSEE
Last observation: juin 2026 (N = 2) · 2025 (N = 1755)
First observation: 1901 (N = 4) · janv. 1946 (N = 2)
Last data update: 03 sept. 2026, 23:45
Last compile: 04 sept. 2026, 01:53
Structure
Définitions
- Espérance de vie à la naissance. L’espérance de vie à la naissance est égale à la durée de vie moyenne d’une génération fictive qui connaîtrait tout au long de son existence les conditions de mortalité par âge de l’année considérée. C’est un indicateur synthétique des taux de mortalité par âge de l’année considérée.
TITLE_FR
Code
`DECES-MORTALITE` |>
group_by(IDBANK, TITLE_FR) |>
summarise(Nobs = n()) |>
arrange(-Nobs) |>
print_table_conditional()Espérance de vie à la naissance
ESPV
Tous
Code
`DECES-MORTALITE` |>
filter(INDICATEUR == "ESPERANCE_VIE",
REF_AREA == "FM",
DEMOGRAPHIE != "ESPV-01") %>%
select_if(~ n_distinct(.) > 1) |>
year_to_date() |>
arrange(date) |>
#filter(date >= as.Date("1981-01-01")) %>%
arrange(date) |>
unique() |>
mutate(Demographie = gsub("Espérance de vie", "... ", Demographie)) |>
mutate(Demographie = ifelse(DEMOGRAPHIE == "ESPV", "... à 0 ans", Demographie)) |>
arrange(Demographie) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = Demographie)) +
scale_x_date(breaks = seq(1940, 2100, 10) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 100, 10),
labels = dollar_format(pre = "", su = " ans")) +
theme_minimal() + xlab("") + ylab("") +
geom_label(data = . %>% filter(date %in% c(max(date), min(date))),
aes(x = date, y = OBS_VALUE, color = Demographie, label = paste0(OBS_VALUE))) +
theme(legend.position = "top",
axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) + labs(x = "", y = "", color = "Espérance de vie: ") +
facet_wrap(~ Sexe)
1981-
Code
`DECES-MORTALITE` |>
filter(INDICATEUR == "ESPERANCE_VIE",
REF_AREA == "FM",
DEMOGRAPHIE != "ESPV-01") %>%
select_if(~ n_distinct(.) > 1) |>
year_to_date() |>
arrange(date) |>
filter(date >= as.Date("1981-01-01")) |>
arrange(date) |>
unique() |>
mutate(Demographie = gsub("Espérance de vie", "... ", Demographie)) |>
mutate(Demographie = ifelse(DEMOGRAPHIE == "ESPV", "... à 0 ans", Demographie)) |>
arrange(Demographie) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = Demographie)) +
scale_x_date(breaks = seq(1981, 2100, 3) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y"),
limits = c(1980, 2024) |> paste0("-01-01") |> as.Date()) +
scale_y_continuous(breaks = seq(0, 100, 10),
labels = dollar_format(pre = "", su = " ans")) +
theme_minimal() + xlab("") + ylab("") +
geom_label(data = . %>% filter(date %in% c(max(date), min(date))),
aes(x = date, y = OBS_VALUE, color = Demographie, label = paste0(OBS_VALUE))) +
theme(legend.position = "top",
axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) + labs(x = "", y = "", color = "Espérance de vie: ") +
facet_wrap(~ Sexe)
Démographie - Nombre de naissances vivantes
Par an (glissement)
Tous
Code
`DECES-MORTALITE` |>
filter(IDBANK == "000436394") |>
month_to_date() |>
arrange(date) |>
mutate(OBS_VALUE = rollsum(x = OBS_VALUE, 12, align = "right", fill = NA)) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE)) +
scale_x_date(breaks = seq(1880, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 1000000, 20000),
labels = dollar_format(pre = "")) +
theme_minimal() + xlab("") + ylab("Nombre sur les 12 derniers mois")
Deces vs. naissances
France Métropolitaine
24 mois
Tous
Code
`DECES-MORTALITE` |>
bind_rows(`NAISSANCES-FECONDITE`) |>
filter(IDBANK %in% c("000436394", "000436391")) |>
month_to_date() |>
group_by(TITLE_FR) |>
arrange(date) |>
mutate(OBS_VALUE = rollsum(x = OBS_VALUE, 24, align = "right", fill = NA),
DEMOGRAPHIE2 = ifelse(DEMOGRAPHIE == "DECES", "Décès", "Naissances")) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
scale_x_date(breaks = seq(1880, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 3000000, 50000),
labels = dollar_format(pre = "")) +
theme_minimal() + xlab("") + ylab("Nombre sur les 24 derniers mois") +
theme(legend.position = "none") +
geom_label(data = . %>% filter(date == as.Date("2005-01-01")), aes(x = date, y = OBS_VALUE, label = DEMOGRAPHIE2, color = TITLE_FR)) +
ggtitle("Naissances et décès sur les 24 derniers mois - France Métropolitaine")
12 mois
Tous
Code
`DECES-MORTALITE` |>
bind_rows(`NAISSANCES-FECONDITE`) |>
filter(IDBANK %in% c("000436394", "000436391")) |>
month_to_date() |>
group_by(TITLE_FR) |>
arrange(date) |>
mutate(OBS_VALUE = rollsum(x = OBS_VALUE, 12, align = "right", fill = NA),
DEMOGRAPHIE2 = ifelse(DEMOGRAPHIE == "DECES", "Décès", "Naissances")) |>
arrange(desc(date)) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
scale_x_date(breaks = seq(1880, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 1000000, 20000),
labels = dollar_format(pre = "")) +
theme_minimal() + xlab("") + ylab("Nombre sur les 12 derniers mois") +
theme(legend.position = "none") +
geom_label(data = . %>% filter(date == as.Date("2005-01-01")), aes(x = date, y = OBS_VALUE, label = DEMOGRAPHIE2, color = TITLE_FR)) +
ggtitle("Naissances et décès sur les 12 derniers mois - France Métropolitaine")
Tous, Dernier chiffre
Code
`DECES-MORTALITE` |>
bind_rows(`NAISSANCES-FECONDITE`) |>
filter(IDBANK %in% c("000436394", "000436391")) |>
month_to_date() |>
group_by(TITLE_FR) |>
arrange(date) |>
mutate(OBS_VALUE = rollsum(x = OBS_VALUE, 12, align = "right", fill = NA),
DEMOGRAPHIE2 = ifelse(DEMOGRAPHIE == "DECES", "Décès", "Naissances")) |>
arrange(desc(date)) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR), size = 1) +
scale_x_date(breaks = seq(1880, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 1000000, 20000),
labels = dollar_format(pre = "")) +
theme_minimal() + xlab("") + ylab("Nombre sur les 12 derniers mois") +
theme(legend.position = "none") +
geom_label(data = . %>% filter(date == as.Date("1950-01-01")), aes(x = date, y = OBS_VALUE, label = DEMOGRAPHIE2, color = TITLE_FR, size = 2)) +
ggtitle("Naissances et décès sur les 12 derniers mois - France Métropolitaine") +
geom_label_repel(data = . %>% filter(max(date) == date),
aes(x = as.Date("2032-01-01"), y = OBS_VALUE, color = TITLE_FR, label = scales::comma(OBS_VALUE)))
1990-
Code
`DECES-MORTALITE` |>
bind_rows(`NAISSANCES-FECONDITE`) |>
filter(IDBANK %in% c("000436394", "000436391")) |>
month_to_date() |>
group_by(TITLE_FR) |>
arrange(date) |>
mutate(OBS_VALUE = rollsum(x = OBS_VALUE, 12, align = "right", fill = NA),
DEMOGRAPHIE2 = ifelse(DEMOGRAPHIE == "DECES", "Décès", "Naissances")) |>
filter(date >= as.Date("1990-01-01")) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
scale_x_date(breaks = seq(1880, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 1000000, 20000),
labels = dollar_format(pre = "")) +
theme_minimal() + xlab("") + ylab("Nombre sur les 12 derniers mois") +
theme(legend.position = "none") +
geom_label(data = . %>% filter(date == as.Date("2005-01-01")), aes(x = date, y = OBS_VALUE, label = DEMOGRAPHIE2, color = TITLE_FR)) +
ggtitle("Naissances et décès sur les 12 derniers mois - France Métropolitaine") +
geom_label_repel(data = . %>% filter(max(date) == date),
aes(x = date, y = OBS_VALUE, color = TITLE_FR, label = OBS_VALUE))
2009-
Code
`DECES-MORTALITE` |>
bind_rows(`NAISSANCES-FECONDITE`) |>
filter(IDBANK %in% c("000436394", "000436391")) |>
month_to_date() |>
group_by(TITLE_FR) |>
arrange(date) |>
mutate(OBS_VALUE = rollsum(x = OBS_VALUE, 12, align = "right", fill = NA),
DEMOGRAPHIE2 = ifelse(DEMOGRAPHIE == "DECES", "Décès", "Naissances")) |>
filter(date >= as.Date("2009-01-01")) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
scale_x_date(breaks = seq(1880, 2100, 1) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 1000000, 20000),
labels = dollar_format(pre = "")) +
theme_minimal() + xlab("") + ylab("Nombre sur les 12 derniers mois") +
theme(legend.position = "none") +
geom_label(data = . %>% filter(date == as.Date("2015-01-01")), aes(x = date, y = OBS_VALUE, label = DEMOGRAPHIE2, color = TITLE_FR)) +
ggtitle("Naissances et décès sur les 12 derniers mois - France Métropolitaine")
2017-
Code
`DECES-MORTALITE` |>
bind_rows(`NAISSANCES-FECONDITE`) |>
filter(IDBANK %in% c("000436394", "000436391")) |>
month_to_date() |>
group_by(TITLE_FR) |>
arrange(date) |>
mutate(OBS_VALUE = rollsum(x = OBS_VALUE, 12, align = "right", fill = NA),
DEMOGRAPHIE2 = ifelse(DEMOGRAPHIE == "DECES", "Décès", "Naissances")) |>
filter(date >= as.Date("2017-01-01")) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
scale_x_date(breaks = seq(1880, 2100, 1) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 1000000, 20000),
labels = dollar_format(pre = "")) +
theme_minimal() + xlab("") + ylab("Nombre sur les 12 derniers mois") +
theme(legend.position = "none") +
geom_label(data = . %>% filter(date == as.Date("2015-01-01")), aes(x = date, y = OBS_VALUE, label = DEMOGRAPHIE2, color = TITLE_FR)) +
ggtitle("Naissances et décès sur les 12 derniers mois - France Métropolitaine")
2020-
Code
`DECES-MORTALITE` |>
bind_rows(`NAISSANCES-FECONDITE`) |>
filter(IDBANK %in% c("000436394", "000436391")) |>
month_to_date() |>
group_by(TITLE_FR) |>
arrange(date) |>
mutate(OBS_VALUE = rollsum(x = OBS_VALUE, 12, align = "right", fill = NA),
DEMOGRAPHIE2 = ifelse(DEMOGRAPHIE == "DECES", "Décès", "Naissances")) |>
filter(date >= as.Date("2020-01-01")) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
scale_x_date(breaks = seq(1880, 2100, 1) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 1000000, 20000),
labels = dollar_format(pre = "")) +
theme_minimal() + xlab("") + ylab("Nombre sur les 12 derniers mois") +
theme(legend.position = "none") +
geom_label(data = . %>% filter(date == as.Date("2015-01-01")), aes(x = date, y = OBS_VALUE, label = DEMOGRAPHIE2, color = TITLE_FR)) +
ggtitle("Naissances et décès sur les 12 derniers mois - France Métropolitaine")
2023-
Code
`DECES-MORTALITE` |>
bind_rows(`NAISSANCES-FECONDITE`) |>
filter(IDBANK %in% c("000436394", "000436391")) |>
month_to_date() |>
group_by(TITLE_FR) |>
arrange(date) |>
mutate(OBS_VALUE = rollsum(x = OBS_VALUE, 12, align = "right", fill = NA),
DEMOGRAPHIE2 = ifelse(DEMOGRAPHIE == "DECES", "Décès", "Naissances")) |>
filter(date >= as.Date("2023-01-01")) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
scale_x_date(breaks = "1 month",
labels = date_format("%B %Y")) +
scale_y_continuous(breaks = seq(0, 1000000, 10000),
labels = dollar_format(pre = "")) +
theme_minimal() + xlab("") + ylab("Nombre sur les 12 derniers mois") +
theme(legend.position = "none",
axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
geom_label(data = . %>% filter(date == as.Date("2015-01-01")), aes(x = date, y = OBS_VALUE, label = DEMOGRAPHIE2, color = TITLE_FR)) +
ggtitle("Naissances et décès sur les 12 derniers mois - France Métropolitaine") +
geom_label(data = . %>% filter(max(date) == date),
aes(x = date, y = OBS_VALUE, color = TITLE_FR, label = scales::comma(OBS_VALUE)))
2024-
Code
invisible(Sys.setlocale("LC_TIME", "fr_FR.UTF-8"))
`DECES-MORTALITE` |>
bind_rows(`NAISSANCES-FECONDITE`) |>
filter(IDBANK %in% c("000436394", "000436391")) |>
month_to_date() |>
group_by(TITLE_FR) |>
arrange(date) |>
mutate(OBS_VALUE = rollsum(x = OBS_VALUE, 12, align = "right", fill = NA),
DEMOGRAPHIE2 = ifelse(DEMOGRAPHIE == "DECES", "Décès", "Naissances")) |>
filter(date >= max(date) - years(1)-months(2)) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
scale_x_date(breaks = "1 month",
labels = date_format("%B %Y")) +
scale_y_continuous(breaks = seq(0, 1000000, 1000),
labels = dollar_format(pre = "")) +
theme_minimal() + xlab("") + ylab("Nombre sur les 12 derniers mois") +
theme(legend.position = "none",
axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
geom_label(data = . %>% filter(date == as.Date("2015-01-01")), aes(x = date, y = OBS_VALUE, label = DEMOGRAPHIE2, color = TITLE_FR)) +
ggtitle("Naissances et décès sur les 12 derniers mois - France Métropolitaine") +
geom_text(aes(x = date, y = OBS_VALUE, color = TITLE_FR, label = scales::comma(OBS_VALUE)))
6 mois
Code
`DECES-MORTALITE` |>
bind_rows(`NAISSANCES-FECONDITE`) |>
filter(IDBANK %in% c("000436394", "000436391")) |>
month_to_date() |>
group_by(TITLE_FR) |>
arrange(date) |>
mutate(OBS_VALUE = rollsum(x = OBS_VALUE, 6, align = "right", fill = NA)) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
scale_x_date(breaks = seq(1880, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 1000000, 20000),
labels = dollar_format(pre = "")) +
theme_minimal() + xlab("") + ylab("Nombre sur les 6 derniers mois") +
theme(legend.position = c(0.4, 0.5),
legend.title = element_blank(),
legend.direction = "vertical")
France Entière
12 mois
Code
`DECES-MORTALITE` |>
bind_rows(`NAISSANCES-FECONDITE`) |>
filter(IDBANK %in% c("001641603", "001641601")) |>
month_to_date() |>
group_by(TITLE_FR) |>
arrange(date) |>
mutate(OBS_VALUE = rollsum(x = OBS_VALUE, 12, align = "right", fill = NA)) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
scale_x_date(breaks = seq(1880, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 1000000, 20000),
labels = dollar_format(pre = "")) +
theme_minimal() + xlab("") + ylab("Nombre sur les 12 derniers mois") +
theme(legend.position = c(0.4, 0.5),
legend.title = element_blank(),
legend.direction = "vertical")
Tous, Dernier chiffre
Code
`DECES-MORTALITE` |>
bind_rows(`NAISSANCES-FECONDITE`) |>
filter(IDBANK %in% c("001641603", "001641601")) |>
month_to_date() |>
group_by(TITLE_FR) |>
arrange(date) |>
mutate(OBS_VALUE = rollsum(x = OBS_VALUE, 12, align = "right", fill = NA),
DEMOGRAPHIE2 = ifelse(DEMOGRAPHIE == "DECES", "Décès", "Naissances")) |>
arrange(desc(date)) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR), size = 1) +
scale_x_date(breaks = seq(1880, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 1000000, 20000),
labels = dollar_format(pre = "")) +
theme_minimal() + xlab("") + ylab("Nombre sur les 12 derniers mois") +
theme(legend.position = "none") +
geom_label(data = . %>% filter(date == as.Date("1950-01-01")), aes(x = date, y = OBS_VALUE, label = DEMOGRAPHIE2, color = TITLE_FR, size = 2)) +
ggtitle("Naissances et décès sur les 12 derniers mois - France Entière") +
geom_label_repel(data = . %>% filter(max(date) == date),
aes(x = max(date) + years(3), y = OBS_VALUE, color = TITLE_FR, label = scales::comma(OBS_VALUE)))
2024-
Code
invisible(Sys.setlocale("LC_TIME", "fr_FR.UTF-8"))
`DECES-MORTALITE` |>
bind_rows(`NAISSANCES-FECONDITE`) |>
filter(IDBANK %in% c("001641603", "001641601")) |>
month_to_date() |>
group_by(TITLE_FR) |>
arrange(date) |>
mutate(OBS_VALUE = rollsum(x = OBS_VALUE, 12, align = "right", fill = NA),
DEMOGRAPHIE2 = ifelse(DEMOGRAPHIE == "DECES", "Décès", "Naissances")) |>
filter(date >= max(date) - years(1)-months(2)) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR), size = 1) +
scale_x_date(breaks = "1 month",
labels = date_format("%B %Y")) +
scale_y_continuous(breaks = seq(0, 1000000, 5000),
labels = dollar_format(pre = "")) +
theme_minimal() + xlab("") + ylab("Nombre sur les 12 derniers mois") +
theme(legend.position = "none",
axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
geom_label(data = . %>% filter(date == as.Date("2015-01-01")), aes(x = date, y = OBS_VALUE, label = DEMOGRAPHIE2, color = TITLE_FR)) +
ggtitle("Naissances et décès sur les 12 derniers mois - France Entière") +
geom_text_repel(aes(x = date, y = OBS_VALUE, color = TITLE_FR, label = scales::comma(OBS_VALUE)))
1 an dernier
Code
invisible(Sys.setlocale("LC_TIME", "fr_FR.UTF-8"))
`DECES-MORTALITE` |>
bind_rows(`NAISSANCES-FECONDITE`) |>
filter(IDBANK %in% c("001641603", "001641601")) |>
month_to_date() |>
group_by(TITLE_FR) |>
arrange(date) |>
mutate(OBS_VALUE = rollsum(x = OBS_VALUE, 12, align = "right", fill = NA),
DEMOGRAPHIE2 = ifelse(DEMOGRAPHIE == "DECES", "Décès", "Naissances")) |>
filter(date >= max(date) - years(1)) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR), size = 1) +
scale_x_date(breaks = "1 month",
labels = date_format("%B %Y")) +
scale_y_continuous(breaks = seq(0, 1000000, 5000),
labels = dollar_format(pre = "")) +
theme_minimal() + xlab("") + ylab("Nombre sur les 12 derniers mois") +
theme(legend.position = "none",
axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
geom_label(data = . %>% filter(date == as.Date("2015-01-01")), aes(x = date, y = OBS_VALUE, label = DEMOGRAPHIE2, color = TITLE_FR)) +
ggtitle("Naissances et décès sur les 12 derniers mois - France Entière") +
geom_text_repel(aes(x = date, y = OBS_VALUE, color = TITLE_FR, label = scales::comma(OBS_VALUE)))
2025-
Code
invisible(Sys.setlocale("LC_TIME", "fr_FR.UTF-8"))
`DECES-MORTALITE` |>
bind_rows(`NAISSANCES-FECONDITE`) |>
filter(IDBANK %in% c("001641603", "001641601")) |>
month_to_date() |>
group_by(TITLE_FR) |>
arrange(date) |>
mutate(OBS_VALUE = rollsum(x = OBS_VALUE, 12, align = "right", fill = NA),
DEMOGRAPHIE2 = ifelse(DEMOGRAPHIE == "DECES", "Décès", "Naissances")) |>
filter(date >= as.Date("2025-01-01")) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR), size = 1) +
scale_x_date(breaks = "1 month",
labels = date_format("%B %Y")) +
scale_y_continuous(breaks = seq(0, 1000000, 5000),
labels = dollar_format(pre = "")) +
theme_minimal() + xlab("") + ylab("Nombre sur les 12 derniers mois") +
theme(legend.position = "none",
axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
geom_label(data = . %>% filter(date == as.Date("2015-01-01")), aes(x = date, y = OBS_VALUE, label = DEMOGRAPHIE2, color = TITLE_FR)) +
ggtitle("Naissances et décès sur les 12 derniers mois - France Entière") +
geom_text_repel(aes(x = date, y = OBS_VALUE, color = TITLE_FR, label = scales::comma(OBS_VALUE)))


