Code
scales::percent(1-356.6/439.2, acc = 0.01)# [1] "18.81%"
Données - INSEE
Last observation: Q2 2026 (N = 14)
First observation: Q1 1949 (N = 14)
Last data update: 03 sept. 2026, 05:31
Last compile: 04 sept. 2026, 02:29
« Mesurer “le” pouvoir d’achat », F. Geerolf, 9 juillet 2024. [ html] [ pdf] [ handouts] [ slides] [ slides] [ github]
« La taxe inflationniste, le pouvoir d’achat, le taux d’épargne et le déficit public », F. Geerolf, 9 juillet 2024. [ html] [ pdf] [ handouts] [ slides] [ slides] [ github]
« Inflation en France : IPC ou IPCH ? », F. Geerolf, 9 juillet 2024. [ html] [ pdf] [ handouts] [ slides] [ slides] [ github]
scales::percent(1-356.6/439.2, acc = 0.01)# [1] "18.81%"
Revenu disponible brut. Il s’agit de la part du revenu qui reste à la disposition du ménage pour consommer et épargner, une fois déduits les prélèvements sociaux et les impôts.
Les ressources comprennent : - les revenus d’activité (salaires, revenus des entrepreneurs individuels…), - les revenus du patrimoine (dividendes, intérêts, loyers), - les prestations sociales (y compris les pensions de retraite et les indemnités de chômage), - les transferts courants (notamment les indemnités d’assurance nette des primes). Les charges comprennent notamment les impôts directs (impôt sur le revenu, taxe d’habitation, CSG…).
Revenu disponible brut ajusté. Il s’agit du RDB augmenté des transferts sociaux en nature, contrepartie des consommations individualisables incluses dans les dépenses des APU et des ISBLSM.
Excédent brut d’exploitation des ménages purs. L’EBE des ménages purs correspond aux revenus fonciers, issus des loyers réels ou des loyers imputés (au titre des services de logement que les ménages propriétaires se rendent à eux mêmes).
t_men_val |>
left_join(variable, by = "variable") |>
group_by(variable, Variable) |>
summarise(Nobs = n()) |>
arrange(-Nobs) |>
print_table_conditional()| variable | Variable | Nobs |
|---|---|---|
| B2 + D11 + D4 + D62 + D7 | Total des ressources | 310 |
| B2_S14 | Excédent brut d'exploitation (y compris revenu mixte) | 310 |
| B2_S14A | Revenu mixte | 310 |
| B2_S14B | Excédent brut d'exploitation des ménages purs | 310 |
| B6 | Revenu disponible brut | 310 |
| B7 | Revenu disponible brut ajusté | 310 |
| D11 | Salaires et traitements bruts | 310 |
| D4 | Intérêts et dividendes nets reçus | 310 |
| D5 | Impôts sur le revenu et le patrimoine | 310 |
| D5 + D613 + D614 + D61SC | NA | 310 |
| D613 + D614 + D61SC | NA | 310 |
| D62 | Prestations sociales en espèces | 310 |
| D63 | Transferts sociaux en nature | 310 |
| D7 | Autres ressources nettes | 310 |
t_men_val |>
group_by(date) |>
summarise(Nobs = n()) |>
arrange(desc(date)) |>
print_table_conditional()t_men_val |>
filter(date %in% c(max(date), as.Date("2017-04-01"))) |>
left_join(variable, by = "variable") |>
spread(date, value) %>%
mutate(`% change` = round(100*(.[[4]]/.[[3]]-1), 2),
`change (Mds€)` = round(.[[4]]-.[[3]], 2)) |>
arrange(-`% change`) |>
print_table_conditional()| variable | Variable | 2017-04-01 | 2026-04-01 | % change | change (Mds€) |
|---|---|---|---|---|---|
| D4 | Intérêts et dividendes nets reçus | 20.696 | 36.500 | 76.36 | 15.80 |
| B6 | Revenu disponible brut | 346.287 | 475.835 | 37.41 | 129.55 |
| B7 | Revenu disponible brut ajusté | 448.073 | 613.101 | 36.83 | 165.03 |
| B2 + D11 + D4 + D62 + D7 | Total des ressources | 438.928 | 594.484 | 35.44 | 155.56 |
| B2_S14B | Excédent brut d'exploitation des ménages purs | 50.831 | 68.826 | 35.40 | 17.99 |
| D63 | Transferts sociaux en nature | 101.786 | 137.266 | 34.86 | 35.48 |
| D11 | Salaires et traitements bruts | 219.522 | 292.770 | 33.37 | 73.25 |
| D62 | Prestations sociales en espèces | 123.851 | 164.511 | 32.83 | 40.66 |
| B2_S14 | Excédent brut d'exploitation (y compris revenu mixte) | 77.716 | 102.567 | 31.98 | 24.85 |
| D5 | Impôts sur le revenu et le patrimoine | 56.201 | 73.160 | 30.18 | 16.96 |
| D5 + D613 + D614 + D61SC | NA | 92.641 | 118.649 | 28.07 | 26.01 |
| B2_S14A | Revenu mixte | 26.885 | 33.742 | 25.50 | 6.86 |
| D613 + D614 + D61SC | NA | 36.440 | 45.489 | 24.83 | 9.05 |
| D7 | Autres ressources nettes | -2.857 | -1.864 | -34.76 | 0.99 |
t_men_val |>
filter(date %in% c(max(date), as.Date("2017-04-01"))) |>
left_join(variable, by = "variable") |>
spread(date, value) %>%
mutate(`% change` = round(100*(.[[4]]/.[[3]]-1), 2),
`change (Mds€)` = round(.[[4]]-.[[3]], 2)) |>
arrange(-`change (Mds€)`) |>
print_table_conditional()| variable | Variable | 2017-04-01 | 2026-04-01 | % change | change (Mds€) |
|---|---|---|---|---|---|
| B7 | Revenu disponible brut ajusté | 448.073 | 613.101 | 36.83 | 165.03 |
| B2 + D11 + D4 + D62 + D7 | Total des ressources | 438.928 | 594.484 | 35.44 | 155.56 |
| B6 | Revenu disponible brut | 346.287 | 475.835 | 37.41 | 129.55 |
| D11 | Salaires et traitements bruts | 219.522 | 292.770 | 33.37 | 73.25 |
| D62 | Prestations sociales en espèces | 123.851 | 164.511 | 32.83 | 40.66 |
| D63 | Transferts sociaux en nature | 101.786 | 137.266 | 34.86 | 35.48 |
| D5 + D613 + D614 + D61SC | NA | 92.641 | 118.649 | 28.07 | 26.01 |
| B2_S14 | Excédent brut d'exploitation (y compris revenu mixte) | 77.716 | 102.567 | 31.98 | 24.85 |
| B2_S14B | Excédent brut d'exploitation des ménages purs | 50.831 | 68.826 | 35.40 | 17.99 |
| D5 | Impôts sur le revenu et le patrimoine | 56.201 | 73.160 | 30.18 | 16.96 |
| D4 | Intérêts et dividendes nets reçus | 20.696 | 36.500 | 76.36 | 15.80 |
| D613 + D614 + D61SC | NA | 36.440 | 45.489 | 24.83 | 9.05 |
| B2_S14A | Revenu mixte | 26.885 | 33.742 | 25.50 | 6.86 |
| D7 | Autres ressources nettes | -2.857 | -1.864 | -34.76 | 0.99 |
t_men_val |>
filter(variable %in% c("D11", "B6", "D4")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("2017-04-01")) |>
group_by(variable) |>
arrange(date) |>
mutate(value = 100*value/value[1]) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Index 100 = 2017T2") +
scale_x_date(breaks = as.Date(paste0(seq(2008, 2100, 1), "-01-01")),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 1500, 5)) +
theme(legend.position = c(0.3, 0.8),
legend.title = element_blank())
Memo, inflation période. IPCH: +21.6%.
ig_d("insee", "IPCH-IPC-2015-ensemble", "IPC-IPCH-trimestre-2017T2")| Source | Dataset | Updated | PNG | |
|---|---|---|---|---|

SMPT, rappel:
ig_d("insee", "t_salaire_val", "TOTAL-AZ-C-2017T2")| Source | Dataset | Updated | PNG | |
|---|---|---|---|---|

t_men_val |>
filter(variable %in% c("D11", "B6", "D4")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("2019-10-01")) |>
group_by(variable) |>
arrange(date) |>
mutate(value = 100*value/value[1]) |>
mutate(date = zoo::as.yearqtr(paste(year(date), quarter(date), sep = "-"))) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Index 100 = 2019T4") +
zoo::scale_x_yearqtr(labels = date_format("%YT%q"), n = 24) +
scale_y_log10(breaks = seq(0, 1500, 5)) +
theme(legend.position = c(0.3, 0.8),
legend.title = element_blank(),
axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
geom_text(data = . %>%
filter(date == max(date)),
aes(x = date, y = value, color = Variable, label = round(value, 1)))
t_men_val |>
filter(variable %in% c("B6", "D4", "D11")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("2021-04-01")) |>
group_by(variable) |>
arrange(date) |>
mutate(value = 100*value/value[1]) |>
mutate(date = zoo::as.yearqtr(paste(year(date), quarter(date), sep = "-"))) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Indice 100 = 2021T2") +
zoo::scale_x_yearqtr(labels = date_format("%YT%q"), n = 24) +
scale_y_log10(breaks = seq(0, 1500, 5)) +
theme(legend.position = c(0.3, 0.8),
legend.title = element_blank(),
axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
geom_text_repel(data = . %>%
filter(date == max(date)),
aes(x = date, y = value, color = Variable, label = round(value, 1)))
t_men_val |>
filter(date %in% c(max(date), max(date)-years(3))) |>
left_join(variable, by = "variable") |>
spread(date, value) %>%
mutate(`% change` = round(100*(.[[4]]/.[[3]]-1), 2),
`change (Mds€)` = round(.[[4]]-.[[3]], 2)) |>
arrange(-`% change`) |>
print_table_conditional()| variable | Variable | 2023-04-01 | 2026-04-01 | % change | change (Mds€) |
|---|---|---|---|---|---|
| D4 | Intérêts et dividendes nets reçus | 31.966 | 36.500 | 14.18 | 4.53 |
| D613 + D614 + D61SC | NA | 40.076 | 45.489 | 13.51 | 5.41 |
| D62 | Prestations sociales en espèces | 147.325 | 164.511 | 11.67 | 17.19 |
| D63 | Transferts sociaux en nature | 125.263 | 137.266 | 9.58 | 12.00 |
| D5 + D613 + D614 + D61SC | NA | 108.518 | 118.649 | 9.34 | 10.13 |
| B7 | Revenu disponible brut ajusté | 566.638 | 613.101 | 8.20 | 46.46 |
| B2 + D11 + D4 + D62 + D7 | Total des ressources | 549.893 | 594.484 | 8.11 | 44.59 |
| B6 | Revenu disponible brut | 441.375 | 475.835 | 7.81 | 34.46 |
| D11 | Salaires et traitements bruts | 273.749 | 292.770 | 6.95 | 19.02 |
| D5 | Impôts sur le revenu et le patrimoine | 68.443 | 73.160 | 6.89 | 4.72 |
| B2_S14A | Revenu mixte | 32.353 | 33.742 | 4.29 | 1.39 |
| B2_S14 | Excédent brut d'exploitation (y compris revenu mixte) | 99.494 | 102.567 | 3.09 | 3.07 |
| B2_S14B | Excédent brut d'exploitation des ménages purs | 67.141 | 68.826 | 2.51 | 1.68 |
| D7 | Autres ressources nettes | -2.641 | -1.864 | -29.42 | 0.78 |
t_men_val |>
filter(date %in% c(max(date), max(date)-years(3))) |>
left_join(variable, by = "variable") |>
spread(date, value) %>%
mutate(`% change` = round(100*(.[[4]]/.[[3]]-1), 2),
`change (Mds€)` = round(.[[4]]-.[[3]], 2)) |>
arrange(-`change (Mds€)`) |>
print_table_conditional()| variable | Variable | 2023-04-01 | 2026-04-01 | % change | change (Mds€) |
|---|---|---|---|---|---|
| B7 | Revenu disponible brut ajusté | 566.638 | 613.101 | 8.20 | 46.46 |
| B2 + D11 + D4 + D62 + D7 | Total des ressources | 549.893 | 594.484 | 8.11 | 44.59 |
| B6 | Revenu disponible brut | 441.375 | 475.835 | 7.81 | 34.46 |
| D11 | Salaires et traitements bruts | 273.749 | 292.770 | 6.95 | 19.02 |
| D62 | Prestations sociales en espèces | 147.325 | 164.511 | 11.67 | 17.19 |
| D63 | Transferts sociaux en nature | 125.263 | 137.266 | 9.58 | 12.00 |
| D5 + D613 + D614 + D61SC | NA | 108.518 | 118.649 | 9.34 | 10.13 |
| D613 + D614 + D61SC | NA | 40.076 | 45.489 | 13.51 | 5.41 |
| D5 | Impôts sur le revenu et le patrimoine | 68.443 | 73.160 | 6.89 | 4.72 |
| D4 | Intérêts et dividendes nets reçus | 31.966 | 36.500 | 14.18 | 4.53 |
| B2_S14 | Excédent brut d'exploitation (y compris revenu mixte) | 99.494 | 102.567 | 3.09 | 3.07 |
| B2_S14B | Excédent brut d'exploitation des ménages purs | 67.141 | 68.826 | 2.51 | 1.68 |
| B2_S14A | Revenu mixte | 32.353 | 33.742 | 4.29 | 1.39 |
| D7 | Autres ressources nettes | -2.641 | -1.864 | -29.42 | 0.78 |
t_men_val |>
filter(date %in% c(max(date), max(date)-years(2))) |>
left_join(variable, by = "variable") |>
spread(date, value) %>%
mutate(`% change` = round(100*(.[[4]]/.[[3]]-1), 2),
`change (Mds€)` = round(.[[4]]-.[[3]], 2)) |>
arrange(-`% change`) |>
print_table_conditional()| variable | Variable | 2024-04-01 | 2026-04-01 | % change | change (Mds€) |
|---|---|---|---|---|---|
| D7 | Autres ressources nettes | -1.679 | -1.864 | 11.02 | -0.19 |
| D613 + D614 + D61SC | NA | 41.434 | 45.489 | 9.79 | 4.06 |
| D5 + D613 + D614 + D61SC | NA | 112.401 | 118.649 | 5.56 | 6.25 |
| D62 | Prestations sociales en espèces | 156.481 | 164.511 | 5.13 | 8.03 |
| D63 | Transferts sociaux en nature | 130.605 | 137.266 | 5.10 | 6.66 |
| B2_S14A | Revenu mixte | 32.516 | 33.742 | 3.77 | 1.23 |
| D11 | Salaires et traitements bruts | 283.694 | 292.770 | 3.20 | 9.08 |
| D5 | Impôts sur le revenu et le patrimoine | 70.966 | 73.160 | 3.09 | 2.19 |
| B2 + D11 + D4 + D62 + D7 | Total des ressources | 577.305 | 594.484 | 2.98 | 17.18 |
| B7 | Revenu disponible brut ajusté | 595.509 | 613.101 | 2.95 | 17.59 |
| B6 | Revenu disponible brut | 464.904 | 475.835 | 2.35 | 10.93 |
| B2_S14 | Excédent brut d'exploitation (y compris revenu mixte) | 100.784 | 102.567 | 1.77 | 1.78 |
| B2_S14B | Excédent brut d'exploitation des ménages purs | 68.268 | 68.826 | 0.82 | 0.56 |
| D4 | Intérêts et dividendes nets reçus | 38.026 | 36.500 | -4.01 | -1.53 |
t_men_val |>
filter(date %in% c(max(date), max(date)-years(2))) |>
left_join(variable, by = "variable") |>
spread(date, value) %>%
mutate(`% change` = round(100*(.[[4]]/.[[3]]-1), 2),
`change (Mds€)` = round(.[[4]]-.[[3]], 2)) |>
arrange(-`change (Mds€)`) |>
print_table_conditional()| variable | Variable | 2024-04-01 | 2026-04-01 | % change | change (Mds€) |
|---|---|---|---|---|---|
| B7 | Revenu disponible brut ajusté | 595.509 | 613.101 | 2.95 | 17.59 |
| B2 + D11 + D4 + D62 + D7 | Total des ressources | 577.305 | 594.484 | 2.98 | 17.18 |
| B6 | Revenu disponible brut | 464.904 | 475.835 | 2.35 | 10.93 |
| D11 | Salaires et traitements bruts | 283.694 | 292.770 | 3.20 | 9.08 |
| D62 | Prestations sociales en espèces | 156.481 | 164.511 | 5.13 | 8.03 |
| D63 | Transferts sociaux en nature | 130.605 | 137.266 | 5.10 | 6.66 |
| D5 + D613 + D614 + D61SC | NA | 112.401 | 118.649 | 5.56 | 6.25 |
| D613 + D614 + D61SC | NA | 41.434 | 45.489 | 9.79 | 4.06 |
| D5 | Impôts sur le revenu et le patrimoine | 70.966 | 73.160 | 3.09 | 2.19 |
| B2_S14 | Excédent brut d'exploitation (y compris revenu mixte) | 100.784 | 102.567 | 1.77 | 1.78 |
| B2_S14A | Revenu mixte | 32.516 | 33.742 | 3.77 | 1.23 |
| B2_S14B | Excédent brut d'exploitation des ménages purs | 68.268 | 68.826 | 0.82 | 0.56 |
| D7 | Autres ressources nettes | -1.679 | -1.864 | 11.02 | -0.19 |
| D4 | Intérêts et dividendes nets reçus | 38.026 | 36.500 | -4.01 | -1.53 |
t_men_val |>
filter(date %in% c(max(date), max(date)-years(1))) |>
left_join(variable, by = "variable") |>
spread(date, value) %>%
mutate(`% change` = round(100*(.[[4]]/.[[3]]-1), 2),
`change (Mds€)` = round(.[[4]]-.[[3]], 2)) |>
arrange(-`% change`) |>
print_table_conditional()| variable | Variable | 2025-04-01 | 2026-04-01 | % change | change (Mds€) |
|---|---|---|---|---|---|
| D613 + D614 + D61SC | NA | 42.633 | 45.489 | 6.70 | 2.86 |
| D4 | Intérêts et dividendes nets reçus | 34.944 | 36.500 | 4.45 | 1.56 |
| D5 + D613 + D614 + D61SC | NA | 114.973 | 118.649 | 3.20 | 3.68 |
| B2_S14B | Excédent brut d'exploitation des ménages purs | 67.003 | 68.826 | 2.72 | 1.82 |
| D63 | Transferts sociaux en nature | 133.868 | 137.266 | 2.54 | 3.40 |
| B2_S14 | Excédent brut d'exploitation (y compris revenu mixte) | 100.397 | 102.567 | 2.16 | 2.17 |
| D62 | Prestations sociales en espèces | 161.466 | 164.511 | 1.89 | 3.04 |
| B2 + D11 + D4 + D62 + D7 | Total des ressources | 583.995 | 594.484 | 1.80 | 10.49 |
| B7 | Revenu disponible brut ajusté | 602.890 | 613.101 | 1.69 | 10.21 |
| B6 | Revenu disponible brut | 469.022 | 475.835 | 1.45 | 6.81 |
| D7 | Autres ressources nettes | -1.840 | -1.864 | 1.30 | -0.02 |
| D11 | Salaires et traitements bruts | 289.028 | 292.770 | 1.29 | 3.74 |
| D5 | Impôts sur le revenu et le patrimoine | 72.340 | 73.160 | 1.13 | 0.82 |
| B2_S14A | Revenu mixte | 33.395 | 33.742 | 1.04 | 0.35 |
t_men_val |>
filter(date %in% c(max(date), max(date)-years(1))) |>
left_join(variable, by = "variable") |>
spread(date, value) %>%
mutate(`% change` = round(100*(.[[4]]/.[[3]]-1), 2),
`change (Mds€)` = round(.[[4]]-.[[3]], 2)) |>
arrange(-`change (Mds€)`) |>
print_table_conditional()| variable | Variable | 2025-04-01 | 2026-04-01 | % change | change (Mds€) |
|---|---|---|---|---|---|
| B2 + D11 + D4 + D62 + D7 | Total des ressources | 583.995 | 594.484 | 1.80 | 10.49 |
| B7 | Revenu disponible brut ajusté | 602.890 | 613.101 | 1.69 | 10.21 |
| B6 | Revenu disponible brut | 469.022 | 475.835 | 1.45 | 6.81 |
| D11 | Salaires et traitements bruts | 289.028 | 292.770 | 1.29 | 3.74 |
| D5 + D613 + D614 + D61SC | NA | 114.973 | 118.649 | 3.20 | 3.68 |
| D63 | Transferts sociaux en nature | 133.868 | 137.266 | 2.54 | 3.40 |
| D62 | Prestations sociales en espèces | 161.466 | 164.511 | 1.89 | 3.04 |
| D613 + D614 + D61SC | NA | 42.633 | 45.489 | 6.70 | 2.86 |
| B2_S14 | Excédent brut d'exploitation (y compris revenu mixte) | 100.397 | 102.567 | 2.16 | 2.17 |
| B2_S14B | Excédent brut d'exploitation des ménages purs | 67.003 | 68.826 | 2.72 | 1.82 |
| D4 | Intérêts et dividendes nets reçus | 34.944 | 36.500 | 4.45 | 1.56 |
| D5 | Impôts sur le revenu et le patrimoine | 72.340 | 73.160 | 1.13 | 0.82 |
| B2_S14A | Revenu mixte | 33.395 | 33.742 | 1.04 | 0.35 |
| D7 | Autres ressources nettes | -1.840 | -1.864 | 1.30 | -0.02 |
t_men_val |>
filter(variable %in% c("B6", "B2_S14B", "D4")) |>
spread(variable, value) |>
transmute(date, RDB = B6, `RDB - intérêts et dividendes` = B6-D4, `RDB - intérêts et dividendes - EBE` = B6-D4-B2_S14B) |>
gather(Variable, value, -date) |>
group_by(Variable) |>
arrange(date) |>
mutate(ga = value/lag(value, 4) - 1) |>
filter(date >= as.Date("1990-01-01")) |>
ggplot() + geom_line(aes(x = date, y = ga, color = Variable)) +
xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "5 years"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.4, 0.9),
legend.title = element_blank(),
legend.direction = "vertical")
t_men_val |>
filter(variable %in% c("D11", "B6")) |>
left_join(variable, by = "variable") |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 5), "-01-01")),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 10000, 10),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("D11", "B6")) |>
left_join(variable, by = "variable") |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 5), "-01-01")),
labels = date_format("%Y")) +
scale_y_log10(breaks = c(1,2,5,8,10,20, 50, 80, 100, 200, 500, 1000, 1200, 2000, 3000, 5000, 10000),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("D11", "B6")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("1995-01-01")) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 10000, 10),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("D11", "B6")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("1995-01-01")) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 1500, 10),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("D11", "B6")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("1999-01-01")) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(1999, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 10000, 10),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("D11", "B6")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("1999-01-01")) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(1999, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 1500, 10),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("D11", "B6")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("1999-01-01")) |>
group_by(variable) |>
arrange(date) |>
mutate(value = 100*value/value[1]) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Base 100 = 1999") +
scale_x_date(breaks = as.Date(paste0(seq(1999, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 1500, 10)) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
Et par personne ?
t_men_val |>
filter(variable %in% c("D11", "B6")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("2001-01-01"),
date <= as.Date("2021-01-01")) |>
group_by(variable) |>
arrange(date) |>
mutate(value = 100*value/value[1]) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Base 100 = 2001-T1") +
scale_x_date(breaks = as.Date(paste0(seq(1999, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 1500, 10)) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank()) +
geom_label_repel(data = . %>% filter(max(date) == date),
aes(x = date, y = value, color = Variable, label = round(value, 1)), show.legend = F)
t_men_val |>
filter(variable %in% c("D11", "B6")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("2001-01-01")) |>
group_by(variable) |>
arrange(date) |>
mutate(value = 100*value/value[1]) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Base 100 = 2001-T1") +
scale_x_date(breaks = as.Date(paste0(seq(1999, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 1500, 10)) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("D11", "B6")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("2008-01-01")) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(2008, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 10000, 10),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("D11", "B6")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("2008-01-01")) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(2008, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 1500, 10),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("D11", "B6")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("2017-01-01")) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(2008, 2100, 1), "-01-01")),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 10000, 10),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("D11", "B6")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("2017-01-01")) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(2008, 2100, 1), "-01-01")),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 1500, 10),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("B2_S14", "B2_S14B", "D4")) |>
left_join(variable, by = "variable") |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 5), "-01-01")),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 10000, 10),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("B2_S14", "B2_S14B", "D4")) |>
left_join(variable, by = "variable") |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 5), "-01-01")),
labels = date_format("%Y")) +
scale_y_log10(breaks = c(1,2,5,8,10,20, 50, 80, 100, 200, 500, 1000, 1200, 2000, 3000, 5000, 10000),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("B2_S14", "B2_S14B", "D4")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("1995-01-01")) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 10000, 10),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("B2_S14", "B2_S14B", "D4")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("1995-01-01")) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 1500, 10),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("B2_S14", "B2_S14B", "D4")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("2008-01-01")) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 1), "-01-01")),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 10000, 10),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("B2_S14", "B2_S14B", "D4")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("2008-01-01")) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 1500, 10),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("B2_S14", "B2_S14B", "D4")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("2017-01-01")) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 1), "-01-01")),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 10000, 10),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
t_men_val |>
filter(variable %in% c("B2_S14", "B2_S14B", "D4")) |>
left_join(variable, by = "variable") |>
filter(date >= as.Date("2017-01-01")) |>
ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Milliards d'€") +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 1), "-01-01")),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 1500, 10),
labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())