| source | dataset | Title | .html | .rData |
|---|---|---|---|---|
| insee | t_recapAgent_val | Récapitulatif des séries des comptes d'agents | 2026-01-15 | 2026-01-10 |
| insee | CNT-2020-PIB-EQB-RF | Équilibre du produit intérieur brut | 2026-01-15 | 2026-01-15 |
Récapitulatif des séries des comptes d’agents
Data - INSEE
Info
Données
date
Code
t_recapAgent_val %>%
group_by(date) %>%
summarise(Nobs = n()) %>%
arrange(desc(date)) %>%
print_table_conditional2017T2-
Table
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(date %in% c(as.Date("2017-04-01"), max(date) - months(3), max(date))) %>%
spread(date, value) %>%
print_table_conditional(.)D41 - Intérêts
2017T2-
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "D41") %>%
filter(date %in% c(as.Date("2017-04-01"), max(date) - months(3), max(date))) %>%
spread(date, value) %>%
print_table_conditional(.)| sheet | column | Compte | operation | Operation1 | Operation2 | 2017-04-01 | 2025-04-01 | 2025-07-01 |
|---|---|---|---|---|---|---|---|---|
| APU | 24 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 0.351 | 1.393 | 1.431 |
| APU | 28 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 10.254 | 16.352 | 16.388 |
| ISBLSM | 16 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 0.165 | 0.729 | 0.684 |
| ISBLSM | 18 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 0.046 | 0.153 | 0.156 |
| Menages | 42 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 3.136 | 13.559 | 13.335 |
| Menages | 46 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 3.146 | 11.432 | 11.188 |
| RdM | 10 | NA | D41 | En provenance du reste du monde | Intérêts | 13.599 | 48.443 | 49.440 |
| RdM | 31 | NA | D41 | à destination du reste du monde | Intérêts | 15.017 | 58.688 | 59.372 |
| SF | 17 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 37.030 | 132.390 | 135.050 |
| SF | 21 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 25.235 | 116.198 | 118.211 |
| SNF | 17 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 14.792 | 32.580 | 33.463 |
| SNF | 22 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 18.211 | 46.761 | 47.953 |
2021T2-
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "D41") %>%
filter(date %in% c(as.Date("2021-04-01"), max(date))) %>%
spread(date, value) %>%
print_table_conditional(.)| sheet | column | Compte | operation | Operation1 | Operation2 | 2021-04-01 | 2025-07-01 |
|---|---|---|---|---|---|---|---|
| APU | 24 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 0.139 | 1.431 |
| APU | 28 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 7.961 | 16.388 |
| ISBLSM | 16 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 0.126 | 0.684 |
| ISBLSM | 18 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 0.028 | 0.156 |
| Menages | 42 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 2.275 | 13.335 |
| Menages | 46 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 2.297 | 11.188 |
| RdM | 10 | NA | D41 | En provenance du reste du monde | Intérêts | 12.502 | 49.440 |
| RdM | 31 | NA | D41 | à destination du reste du monde | Intérêts | 11.016 | 59.372 |
| SF | 17 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 30.564 | 135.050 |
| SF | 21 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 20.691 | 118.211 |
| SNF | 17 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 16.023 | 33.463 |
| SNF | 22 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 16.663 | 47.953 |
D42 - Dividendes
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "D42") %>%
filter(date %in% c(as.Date("2017-04-01"), max(date) - months(3), max(date))) %>%
spread(date, value) %>%
print_table_conditional(.)| sheet | column | Compte | operation | Operation1 | Operation2 | 2017-04-01 | 2025-04-01 | 2025-07-01 |
|---|---|---|---|---|---|---|---|---|
| APU | 25 | Compte d'affectation des revenus primaires | D42 | Reçu | Dividendes | 1.860 | 1.742 | 1.772 |
| Menages | 43 | Compte d'affectation des revenus primaires | D42 | Reçu | Dividendes | 8.095 | 16.344 | 16.258 |
| RdM | 11 | NA | D42 | En provenance du reste du monde | Dividendes | 13.898 | 31.253 | 31.300 |
| RdM | 32 | NA | D42 | à destination du reste du monde | Dividendes | 11.212 | 17.364 | 17.338 |
| SF | 18 | Compte d'affectation des revenus primaires | D42 | Reçu | Dividendes | 12.135 | 22.078 | 22.246 |
| SF | 22 | Compte d'affectation des revenus primaires | D42 | Versé | Dividendes | 10.181 | 14.429 | 14.452 |
| SNF | 18 | Compte d'affectation des revenus primaires | D42 | Reçu | Dividendes | 37.503 | 62.624 | 62.226 |
| SNF | 23 | Compte d'affectation des revenus primaires | D42 | Versé | Dividendes | 46.725 | 74.470 | 74.087 |
B9NF - Besoin (-) ou Capacité (+) de financement
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
filter(date %in% c(as.Date("2017-04-01"), max(date) - months(3), max(date))) %>%
spread(date, value) %>%
print_table_conditional(.)| sheet | column | Compte | operation | Operation1 | Operation2 | 2017-04-01 | 2025-04-01 | 2025-07-01 |
|---|---|---|---|---|---|---|---|---|
| APU | 64 | Compte de capital | B9NF | Besoin (-) ou Capacité (+) de financement | NA | -18.291 | -40.420 | -40.316 |
| ISBLSM | 35 | Compte de capital | B9NF | Besoin (-) ou Capacité (+) de financement | NA | 0.080 | 1.052 | 0.913 |
| Menages | 78 | Compte de capital | B9NF | Besoin (-) ou Capacité (+) de financement | NA | 14.387 | 45.155 | 43.623 |
| RdM | 50 | NA | B9NF | Besoin (-) ou Capacité(+) de financement de la Nation | NA | -2.699 | -1.400 | 4.674 |
| SF | 52 | Compte de capital | B9NF | Besoin (-) ou Capacité (+) de financement | NA | -1.617 | -2.300 | -0.296 |
| SNF | 46 | Compte de capital | B9NF | Besoin (-) ou Capacité (+) de financement | NA | 2.741 | -4.887 | 0.750 |
B9NF - Besoin (-) ou Capacité (+) de financement
Tous
Md€
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
ggplot + geom_line(aes(x = date, y = value, color = paste0(sheet, " - ", Operation1))) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + 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 = seq(-200, 100, 10),
labels = dollar_format(pre = "", su = " Md€")) +
theme(legend.position = c(0.4, 0.8),
legend.title = element_blank())
% du PIB
Tous
Basique
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
transmute(date, value, gdp, sheet, value_gdp = value/gdp) %>%
ggplot + geom_line(aes(x = date, y = value/gdp, color = sheet)) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + 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(-100, 100, 1),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.3, 0.84),
legend.title = element_blank(),
legend.direction = "horizontal")
Avec label
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
transmute(date, value = value/gdp, sheet) %>%
spread(sheet, value) %>%
transmute(date, `Administrations\nPubliques` = `APU`, `Sociétés\n(SNF + SF)` = SNF + SF, `Ménages` = Menages, `Reste du\nMonde` = RdM) %>%
gather(sheet, value, -date) %>%
ggplot + geom_line(aes(x = date, y = value, color = sheet)) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + 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(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.35, 0.9),
legend.title = element_blank(),
legend.direction = "horizontal") +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_label_repel(data = . %>% group_by(sheet) %>% filter(date %in% c(max(date), min(date))),
aes(x = date, y = value, color = sheet, label = percent(value, acc = 0.1)))
2000
Basique
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2000-01-01")) %>%
ggplot + geom_line(aes(x = date, y = value/gdp, color = sheet)) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "2 years"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.3, 0.84),
legend.title = element_blank(),
legend.direction = "horizontal")
Autre division
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2000-01-01")) %>%
transmute(date, value = value/gdp, sheet) %>%
spread(sheet, value) %>%
transmute(date, `Administrations Publiques` = `APU`, `Sociétés (SNF + SF)` = SNF + SF, `Ménages` = Menages) %>%
gather(sheet, value, -date) %>%
ggplot + geom_line(aes(x = date, y = value, color = sheet)) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "2 years"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.35, 0.84),
legend.title = element_blank(),
legend.direction = "horizontal")
Avec label
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2000-01-01")) %>%
transmute(date, value = value/gdp, sheet) %>%
spread(sheet, value) %>%
transmute(date, `Administrations\nPubliques` = `APU`, `Sociétés\n(SNF + SF)` = SNF + SF, `Ménages` = Menages, `Reste du\nMonde` = RdM) %>%
gather(sheet, value, -date) %>%
ggplot + geom_line(aes(x = date, y = value, color = sheet)) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "2 years"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.35, 0.9),
legend.title = element_blank(),
legend.direction = "horizontal") +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_label_repel(data = . %>% group_by(sheet) %>% filter(date %in% c(max(date), min(date))),
aes(x = date, y = value, color = sheet, label = percent(value, acc = 0.1)))
2007-
Basique
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2007-01-01")) %>%
ggplot + geom_line(aes(x = date, y = value/gdp, color = sheet)) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "2 years"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.3, 0.84),
legend.title = element_blank(),
legend.direction = "horizontal")+
geom_hline(yintercept = 0, linetype ="dashed")
Autre division
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2007-01-01")) %>%
transmute(date, value = value/gdp, sheet) %>%
spread(sheet, value) %>%
transmute(date, `Administrations Publiques` = `APU`, `Sociétés (SNF + SF)` = SNF + SF, `Ménages` = Menages) %>%
gather(sheet, value, -date) %>%
ggplot + geom_line(aes(x = date, y = value, color = sheet)) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "1 year"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.35, 0.84),
legend.title = element_blank(),
legend.direction = "horizontal") +
geom_hline(yintercept = 0, linetype ="dashed")
Avec label
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2007-01-01")) %>%
transmute(date, value = value/gdp, sheet) %>%
spread(sheet, value) %>%
transmute(date, `Administrations\nPubliques` = `APU`, `Sociétés\n(SNF + SF)` = SNF + SF, `Ménages` = Menages, `Reste du\nMonde` = RdM) %>%
gather(sheet, value, -date) %>%
ggplot + geom_line(aes(x = date, y = value, color = sheet)) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "2 years"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.35, 0.9),
legend.title = element_blank(),
legend.direction = "horizontal") +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_label_repel(data = . %>% group_by(sheet) %>% filter(date %in% c(max(date), min(date))),
aes(x = date, y = value, color = sheet, label = percent(value, acc = 0.1)))
2013-
Basique
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2013-01-01")) %>%
ggplot + geom_line(aes(x = date, y = value/gdp, color = sheet)) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("2013-01-01"), to = as.Date("2100-10-01"), by = "1 year"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.3, 0.84),
legend.title = element_blank(),
legend.direction = "horizontal")+
geom_hline(yintercept = 0, linetype ="dashed")
Autre division
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2013-01-01")) %>%
transmute(date, value = value/gdp, sheet) %>%
spread(sheet, value) %>%
transmute(date, `Administrations Publiques` = `APU`, `Sociétés (SNF + SF)` = SNF + SF, `Ménages` = Menages) %>%
gather(sheet, value, -date) %>%
ggplot + geom_line(aes(x = date, y = value, color = sheet)) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "1 year"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.35, 0.84),
legend.title = element_blank(),
legend.direction = "horizontal")+
geom_hline(yintercept = 0, linetype ="dashed")
Avec label
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2013-01-01")) %>%
transmute(date, value = value/gdp, sheet) %>%
spread(sheet, value) %>%
transmute(date, `Administrations\nPubliques` = `APU`, `Sociétés\n(SNF + SF)` = SNF + SF, `Ménages` = Menages, `Reste du\nMonde` = RdM) %>%
gather(sheet, value, -date) %>%
ggplot + geom_line(aes(x = date, y = value, color = sheet)) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "1 year"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.35, 0.9),
legend.title = element_blank(),
legend.direction = "horizontal") +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_label_repel(data = . %>% group_by(sheet) %>% filter(date %in% c(max(date), min(date))),
aes(x = date, y = value, color = sheet, label = percent(value, acc = 0.1)))
2017-
Basique
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2017-01-01")) %>%
ggplot + geom_line(aes(x = date, y = value/gdp, color = sheet)) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("2017-01-01"), to = as.Date("2100-10-01"), by = "1 year"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.3, 0.84),
legend.title = element_blank(),
legend.direction = "horizontal")+
geom_hline(yintercept = 0, linetype ="dashed")
Autre division
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2017-01-01")) %>%
transmute(date, value = value/gdp, sheet) %>%
spread(sheet, value) %>%
transmute(date, `Administrations Publiques` = `APU`, `Sociétés (SNF + SF)` = SNF + SF, `Ménages` = Menages) %>%
gather(sheet, value, -date) %>%
ggplot + geom_line(aes(x = date, y = value, color = sheet)) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "1 year"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.35, 0.9),
legend.title = element_blank(),
legend.direction = "horizontal") +
geom_hline(yintercept = 0, linetype = "dashed")
Avec label
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2017-01-01")) %>%
transmute(date, value = value/gdp, sheet) %>%
spread(sheet, value) %>%
transmute(date, `Administrations\nPubliques` = `APU`, `Sociétés\n(SNF + SF)` = SNF + SF, `Ménages` = Menages, `Reste du\nMonde` = RdM) %>%
gather(sheet, value, -date) %>%
ggplot + geom_line(aes(x = date, y = value, color = sheet)) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "1 year"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.35, 0.9),
legend.title = element_blank(),
legend.direction = "horizontal") +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_label_repel(data = . %>% group_by(sheet) %>% filter(date %in% c(max(date), min(date))),
aes(x = date, y = value, color = sheet, label = percent(value, acc = 0.1)))
Sans sociétés
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2017-01-01")) %>%
transmute(date, value = value/gdp, sheet) %>%
spread(sheet, value) %>%
transmute(date, `Administrations\nPubliques` = `APU`, `Ménages` = Menages, `Reste du\nMonde` = RdM) %>%
gather(sheet, value, -date) %>%
ggplot + geom_line(aes(x = date, y = value, color = sheet)) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "1 year"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.7, 0.9),
legend.title = element_blank(),
legend.direction = "horizontal") +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_label_repel(data = . %>% group_by(sheet) %>% filter(date %in% c(max(date), min(date))),
aes(x = date, y = value, color = sheet, label = percent(value, acc = 0.1)))
2018-
Avec label
Code
# --- Votre préparation de données inchangée -----------------------------------
df_long <- t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2017-01-01")) %>%
transmute(date, value = value / gdp, sheet) %>%
tidyr::pivot_wider(names_from = sheet, values_from = value) %>%
transmute(
date,
`Administrations\npubliques` = APU,
`Sociétés\n(SNF + SF)` = SNF + SF,
`Ménages` = Menages,
`Reste du\nmonde` = RdM
) %>%
tidyr::pivot_longer(-date, names_to = "sheet", values_to = "value") %>%
arrange(sheet, date)
# --- Helpers dynamiques pour libellés -----------------------------------------
# Libellé "1er/2ème/3ème/4ème trimestre YYYY" en français
fr_trim_label <- function(d) {
q <- lubridate::quarter(d)
y <- lubridate::year(d)
ord <- c("1er", "2ème", "3ème", "4ème")[q]
paste0(ord, " trimestre ", y)
}
last_date <- max(df_long$date, na.rm = TRUE) # ex. 2025-04-01
last_label <- fr_trim_label(last_date) # "2ème trimestre 2025"
start_year <- lubridate::year(min(df_long$date, na.rm = TRUE))
# --- Points de départ/arrivée pour étiquettes --------------------------------
last_pts <- df_long %>%
group_by(sheet) %>%
slice_max(order_by = date, n = 1, with_ties = FALSE) %>%
ungroup() %>%
mutate(lbl = percent(value, accuracy = 0.01, style_positive = "plus"))
first_pts <- df_long %>%
group_by(sheet) %>%
slice_min(order_by = date, n = 1, with_ties = FALSE) %>%
ungroup() %>%
mutate(lbl = percent(value, accuracy = 0.01, style_positive = "plus"))
# --- Plot ---------------------------------------------------------------------
pal <- c(
"Administrations\npubliques" = "#E69F00",
"Sociétés\n(SNF + SF)" = "#56B4E9",
"Ménages" = "#009E73",
"Reste du\nmonde" = "#CC79A7"
)
ggplot(df_long, aes(date, value, color = sheet)) +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_line(linewidth = 1.1, na.rm = TRUE) +
geom_label_repel(
data = last_pts,
aes(label = lbl),
size = 3.4, segment.size = 0.3,
label.padding = unit(0.15, "lines"),
label.r = unit(0.15, "lines"),
fill = "white", show.legend = FALSE
) +
geom_label_repel(
data = first_pts,
aes(label = lbl),
size = 3.4, segment.size = 0.3,
label.padding = unit(0.15, "lines"),
label.r = unit(0.15, "lines"),
fill = "white", show.legend = FALSE
) +
scale_color_manual(values = pal, NULL) +
scale_y_continuous(
breaks = 0.01 * seq(-100, 140, 2),
labels = function(x) percent(x, accuracy = 1, style_positive = "plus")
) +
scale_x_date(
date_breaks = "1 year",
date_labels = "%Y",
expand = expansion(mult = c(0, 0.06))
) +
labs(
x = NULL,
y = "Besoin (–) ou capacité (+) de financement\n% du PIB",
title = paste0(
"Capacité/Besoin de financement par secteur institutionnel"
),
subtitle = paste0("Depuis ", start_year, " (trimestriel)"),
caption = paste0("Sources: Insee, comptes nationaux du ", last_label, ".")
) +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(face = "bold"),
legend.position = "top",
legend.justification = "left",
panel.grid.minor = element_blank(),
panel.grid.major.x = element_line(linewidth = 0.2),
panel.grid.major.y = element_line(linewidth = 0.2),
axis.title.y = element_text(margin = margin(r = 8))
)
Avec label, Mds€
Code
# 1) Prep ----------------------------------------------------------------------
df_long <- t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2017-01-01")) %>%
transmute(date, value = value, sheet) %>%
tidyr::pivot_wider(names_from = sheet, values_from = value) %>%
transmute(
date,
`Administrations\npubliques` = APU,
`Sociétés\n(SNF + SF)` = SNF + SF,
`Ménages` = Menages,
`Reste du\nmonde` = RdM
) %>%
tidyr::pivot_longer(-date, names_to = "sheet", values_to = "value") %>%
arrange(sheet, date)
# --- Helpers dynamiques pour libellés -----------------------------------------
# Libellé "1er/2ème/3ème/4ème trimestre YYYY" en français
fr_trim_label <- function(d) {
q <- lubridate::quarter(d)
y <- lubridate::year(d)
ord <- c("1er", "2ème", "3ème", "4ème")[q]
paste0(ord, " trimestre ", y)
}
last_date <- max(df_long$date, na.rm = TRUE) # ex. 2025-04-01
last_label <- fr_trim_label(last_date) # "2ème trimestre 2025"
start_year <- lubridate::year(min(df_long$date, na.rm = TRUE))
# Last obs per series for labels
last_pts <- df_long %>%
group_by(sheet) %>%
slice_max(order_by = date, n = 1, with_ties = FALSE) %>%
ungroup() %>%
mutate(lbl = paste0(round(value, 1), " Md€"))
# First obs per series for labels
first_pts <- df_long %>%
group_by(sheet) %>%
slice_min(order_by = date, n = 1, with_ties = FALSE) %>%
ungroup() %>%
mutate(lbl = paste0(round(value, 1), " Md€"))
# 2) Plot ----------------------------------------------------------------------
# Okabe–Ito palette (colorblind-friendly)
pal <- c(
"Administrations\npubliques" = "#E69F00",
"Sociétés\n(SNF + SF)" = "#56B4E9",
"Ménages" = "#009E73",
"Reste du\nmonde" = "#CC79A7"
)
ggplot(df_long, aes(date, value, color = sheet)) +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_line(linewidth = 1.1, na.rm = TRUE) +
geom_label_repel(
data = last_pts,
aes(label = lbl),
size = 3.4,
segment.size = 0.3,
label.padding = unit(0.15, "lines"),
label.r = unit(0.15, "lines"),
fill = "white",
show.legend = FALSE
) +
geom_label_repel(
data = first_pts,
aes(label = lbl),
size = 3.4,
segment.size = 0.3,
label.padding = unit(0.15, "lines"),
label.r = unit(0.15, "lines"),
fill = "white",
show.legend = FALSE
) +
scale_color_manual(values = pal, NULL) +
scale_y_continuous(
breaks = seq(-100, 140, 10),
labels = dollar_format(pre = "", su = "Md€", acc = 0.1)
) +
scale_x_date(
date_breaks = "1 year",
date_labels = "%Y",
expand = expansion(mult = c(0, 0.06)) # space for labels on the right
) +
labs(
x = NULL,
y = "Besoin (–) ou capacité (+) de financement\nMilliards",
title = "Capacité/Besoin de financement par secteur institutionnel",
subtitle = paste0("Depuis ", year(min(df_long$date)), " (trimestriel)"),
caption = paste0("Sources: Insee, comptes nationaux du ", last_label)
) +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(face = "bold"),
legend.position = "top",
legend.justification = "left",
panel.grid.minor = element_blank(),
panel.grid.major.x = element_line(linewidth = 0.2),
panel.grid.major.y = element_line(linewidth = 0.2),
axis.title.y = element_text(margin = margin(r = 8))
)
2019-
Avec label
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2019-01-01")) %>%
transmute(date, value = value/gdp, sheet) %>%
spread(sheet, value) %>%
transmute(date, `Administrations\nPubliques` = `APU`, `Sociétés\n(SNF + SF)` = SNF + SF, `Ménages` = Menages, `Reste du\nMonde` = RdM) %>%
gather(sheet, value, -date) %>%
arrange(desc(date)) %>%
ggplot + geom_line(aes(x = date, y = value, color = sheet)) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "1 year"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.65, 0.9),
legend.title = element_blank(),
legend.direction = "horizontal") +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_label_repel(data = . %>% filter(date %in% c(max(date), min(date))),
aes(x = date, y = value, color = sheet, label = percent(value, acc = 0.1)))
Sans sociétés
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2019-01-01")) %>%
transmute(date, value = value/gdp, sheet) %>%
spread(sheet, value) %>%
transmute(date, `Administrations\nPubliques` = `APU`, `Ménages` = Menages, `Reste du\nMonde` = RdM) %>%
gather(sheet, value, -date) %>%
arrange(desc(date)) %>%
ggplot + geom_line(aes(x = date, y = value, color = sheet)) +
xlab("") + ylab("Besoin (-) ou Capacité (+) de financement (% du PIB)") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "1 year"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.65, 0.9),
legend.title = element_blank(),
legend.direction = "horizontal") +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_label_repel(data = . %>% filter(date %in% c(max(date), min(date))),
aes(x = date, y = value, color = sheet, label = percent(value, acc = 0.1)))
Déficit extérieur vs déficit public
% du PIB
Tous
Code
library(dplyr)
library(ggplot2)
library(scales)
# optional
# install.packages("ggrepel")
# library(ggrepel)
# 1) Préparer les données une fois pour toutes
plot_df <- t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF",
sheet %in% c("RdM", "APU")) %>%
left_join(gdp_quarterly, by = "date") %>%
mutate(
Sheet = ifelse(sheet == "APU", "Solde public", "Solde extérieur (balance courante)"),
value_gdp = value / gdp
) %>%
select(date, value_gdp, Sheet) %>%
arrange(date)
# 2) Dernières observations par série (pour étiquettes)
last_pts <- plot_df %>%
group_by(Sheet) %>%
filter(date == max(date, na.rm = TRUE)) %>%
ungroup()
# 3) Palette simple et cohérente
pal <- c("Solde public" = "#1f77b4", "Solde extérieur (balance courante)" = "#ff7f0e")
# --- Helpers dynamiques pour libellés -----------------------------------------
# Libellé "1er/2ème/3ème/4ème trimestre YYYY" en français
fr_trim_label <- function(d) {
q <- lubridate::quarter(d)
y <- lubridate::year(d)
ord <- c("1er", "2ème", "3ème", "4ème")[q]
paste0(ord, " trimestre ", y)
}
last_date <- max(plot_df$date, na.rm = TRUE) # ex. 2025-04-01
last_label <- fr_trim_label(last_date) # "2ème trimestre 2025"
start_year <- lubridate::year(min(plot_df$date, na.rm = TRUE))
# 4) Le graphique
p <- ggplot(plot_df, aes(x = date, y = value_gdp, color = Sheet)) +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_line(linewidth = 1.1) +
# points fin de série (pour que l’étiquette "accroche" un point)
geom_point(data = last_pts, size = 2.2) +
# ---- Choisir l'une des deux options d'étiquetage ----
# (A) Sans ggrepel (base)
geom_label(
data = last_pts,
aes(label = label_percent(accuracy = 0.1)(value_gdp)),
label.padding = unit(0.15, "lines"),
label.size = 0,
fill = "white",
label.r = unit(0.15, "lines"),
vjust = -0.8,
show.legend = FALSE
) +
scale_color_manual(values = pal, guide = guide_legend(title = NULL)) +
scale_y_continuous(
labels = label_percent(accuracy = 1),
breaks = seq(-0.5, 0.1, by = 0.01), # -10% à +10% (ajustez selon vos données)
expand = expansion(mult = c(0.02, 0.05))
) +
scale_x_date(
date_breaks = "5 years",
date_labels = "%Y",
expand = expansion(mult = c(0.01, 0.05))
) +
labs(
x = NULL,
y = "% du PIB",
title = "Solde public et solde extérieur (% du PIB)",
subtitle = paste0("Comptes trimestriels du ", last_label),
caption = paste0("Source : Insee, comptes du ", last_label)
) +
theme_minimal(base_size = 12) +
theme(
legend.position = c(0.25, 0.25), # ou 'none' si vous préférez sans légende
panel.grid.minor = element_blank(),
plot.title = element_text(face = "bold"),
plot.caption = element_text(color = "gray40")
)
p
1970-
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF",
sheet %in% c("RdM", "APU")) %>%
left_join(gdp_quarterly, by = "date") %>%
arrange(desc(date)) %>%
mutate(Sheet = ifelse(sheet == "APU", "Solde public", "Solde extérieur (Balance courante)"),
value_gdp = value/gdp) %>%
filter(date >= as.Date("1970-01-01")) %>%
select(date, value_gdp, Sheet, value, gdp) %>%
ggplot + geom_line(aes(x = date, y = value_gdp, color = Sheet)) +
xlab("") + ylab("% du PIB") + 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(-100, 100, 1),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.3, 0.3),
legend.title = element_blank()) +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_label(data = . %>% group_by(Sheet) %>% filter(date == max(date)), aes(x = date, y = value_gdp, color = Sheet, label = percent(value_gdp)))
1950-1960: De gaulle
10 août 1957 (franc Gaillard)7 : dévaluation « déguisée » de 20 % par le président du Conseil Félix Gaillard, laquelle fut légalisée en juin 1958.
En juin 1958, Charles de Gaulle valide une dévaluation de 20 %. Elle est considérée comme une réussite.
En 1958 la France se trouvait dans une situation particulièrement difficile, malgré l’ ” opération 20 % ” réalisée par M. Félix Gaillard durant l’été 1957 (dévaluation déguisée ayant pris la forme d’une prime aux exportations et d’une taxation de la plupart des importations), malgré aussi l’” opération vérité des prix ” qui tendait à réduire la consommation intérieure en augmentant les tarifs publics pour freiner l’inflation.
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF",
sheet %in% c("RdM", "APU")) %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("1952-01-01"),
date <= as.Date("1964-01-01")) %>%
mutate(Sheet = ifelse(sheet == "APU", "Solde public", "Solde extérieur (Balance courante)")) %>%
ggplot + geom_line(aes(x = date, y = value/gdp, color = Sheet)) +
xlab("") + ylab("% du PIB") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "1 year"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 1),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.73, 0.2),
legend.title = element_blank()) +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_label(data = . %>% filter(date %in% c(as.Date("1960-01-01"), as.Date("1957-01-01"))), aes(x = date, y = value/gdp, color = Sheet, label = percent(value/gdp)))
1970-1980: Arrivée
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF",
sheet %in% c("RdM", "APU")) %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("1970-01-01"),
date <= as.Date("1980-01-01")) %>%
mutate(Sheet = ifelse(sheet == "APU", "Solde public", "Solde extérieur (Balance courante)")) %>%
ggplot + geom_line(aes(x = date, y = value/gdp, color = Sheet)) +
xlab("") + ylab("% du PIB") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "1 year"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-100, 100, 1),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.3, 0.3),
legend.title = element_blank()) +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_label(data = . %>% filter(date %in% c(max(date), as.Date("1976-07-01"))), aes(x = date, y = value/gdp, color = Sheet, label = percent(value/gdp)))
Sur 12 mois
Tous
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF",
sheet %in% c("RdM", "APU")) %>%
left_join(gdp_quarterly, by = "date") %>%
group_by(sheet) %>%
mutate(value = rollsum(value, 4, fill = NA, align = "right"),
gdp = rollsum(gdp, 4, fill = NA, align = "right")) %>%
arrange(desc(date)) %>%
mutate(Sheet = ifelse(sheet == "APU", "Solde public", "Solde extérieur (Balance courante)"),
value_gdp = value/gdp) %>%
select(date, value_gdp, Sheet, value, gdp) %>%
ggplot + geom_line(aes(x = date, y = value_gdp, color = Sheet)) +
xlab("") + ylab("Capacité de financement, APU ou RdM\n% du PIB, sur 12 mois") + 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(-100, 100, 1),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.3, 0.3),
legend.title = element_blank()) +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_label(data = . %>% group_by(Sheet) %>% filter(date == max(date)), aes(x = date, y = value_gdp, color = Sheet, label = percent(value_gdp)))
1990-
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF",
sheet %in% c("RdM", "APU")) %>%
left_join(gdp_quarterly, by = "date") %>%
group_by(sheet) %>%
mutate(value = rollsum(value, 4, fill = NA, align = "right"),
gdp = rollsum(gdp, 4, fill = NA, align = "right")) %>%
arrange(desc(date)) %>%
mutate(Sheet = ifelse(sheet == "APU", "Solde public", "Solde extérieur (Balance courante)"),
value_gdp = value/gdp) %>%
select(date, value_gdp, Sheet, value, gdp) %>%
filter(date >= as.Date("1990-01-01")) %>%
ggplot + geom_line(aes(x = date, y = value_gdp, color = Sheet)) +
xlab("") + ylab("Capacité de financement, APU ou RdM\n% du PIB, sur 12 mois") + 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(-100, 100, 1),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.3, 0.15),
legend.title = element_blank()) +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_label(data = . %>% group_by(Sheet) %>% filter(date == max(date)), aes(x = date, y = value_gdp, color = Sheet, label = percent(value_gdp)))
D42 - Dividendes
Tous
Md€
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "D42") %>%
ggplot + geom_line(aes(x = date, y = value, color = paste0(sheet, " - ", Operation1))) +
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 = seq(-10, 100, 10),
labels = dollar_format(pre = "", su = " Md€")) +
theme(legend.position = c(0.3, 0.7),
legend.title = element_blank())
% du PIB
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "D42") %>%
left_join(gdp_quarterly, by = "date") %>%
ggplot + geom_line(aes(x = date, y = value/gdp, color = paste0(sheet, " - ", Operation1))) +
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(acc = 1)) +
theme(legend.position = c(0.2, 0.7),
legend.title = element_blank())
Nets
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "D42") %>%
transmute(date, value, Variable = paste0(sheet, " - ", Operation1)) %>%
spread(Variable, value) %>%
transmute(date,
`Administrations Publiques: Reçu` = `APU - Reçu`,
`Ménages: Reçu` = `Menages - Reçu`,
`Reste du Monde: En provenance - à destination` = `RdM - En provenance du reste du monde` - `RdM - à destination du reste du monde`,
`Sociétés Financières: Reçu - Versé` = `SF - Reçu` - `SF - Versé`,
`Sociétés Non Financières: Reçu - Versé` = `SNF - Reçu` - `SNF - Versé`) %>%
gather(Variable, value, -date) %>%
left_join(gdp_quarterly, by = "date") %>%
ggplot + geom_line(aes(x = date, y = value/gdp, 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, .5),
labels = percent_format(acc = .1)) +
theme(legend.position = c(0.5, 0.88),
legend.title = element_blank())
D42, D44
% du PIB
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation %in% c("D42", "D44"),
sheet == "Menages") %>%
left_join(gdp_quarterly, by = "date") %>%
ggplot + geom_line(aes(x = date, y = value/gdp, color = Operation2)) +
xlab("") + ylab("Dividendes reçus, Ménages (% du PIB)") + 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, 0.1),
labels = percent_format(acc = 0.1)) +
theme(legend.position = c(0.2, 0.8),
legend.title = element_blank())
Mds€
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation %in% c("D42", "D44"),
sheet == "Menages") %>%
ggplot + geom_line(aes(x = date, y = value, color = Operation2)) +
xlab("") + ylab("Dividendes reçus, Ménages") + 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 = seq(0, 1000, 2)) +
theme(legend.position = c(0.2, 0.8),
legend.title = element_blank())
1999
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation %in% c("D42", "D44", "B6", "D11"),
sheet == "Menages") %>%
filter(date >= as.Date("1999-01-01")) %>%
group_by(Operation2) %>%
arrange(date) %>%
mutate(value = 100*value/value[1]) %>%
ggplot + geom_line(aes(x = date, y = value, color = paste0(Operation1, Operation2))) +
xlab("") + ylab("Dividendes reçus, Ménages") + 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 = seq(0, 1000, 100)) +
theme(legend.position = c(0.2, 0.8),
legend.title = element_blank())
1999
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation %in% c("D51", "D611", "D613"),
sheet == "Menages") %>%
filter(date >= as.Date("1999-01-01")) %>%
group_by(Operation2) %>%
arrange(date) %>%
mutate(value = 100*value/value[1]) %>%
ggplot + geom_line(aes(x = date, y = value, color = paste0(Operation1, Operation2))) +
xlab("") + ylab("Dividendes reçus, Ménages") + 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 = seq(0, 1000, 10)) +
theme(legend.position = c(0.3, 0.8),
legend.title = element_blank())
B2 (y compris B3)
1999-
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation %in% c("B2 (y compris B3)"),
sheet == "Menages") %>%
filter(date >= as.Date("1999-01-01")) %>%
group_by(Operation2) %>%
arrange(date) %>%
mutate(value_index = 100*value/value[1]) %>%
ggplot + geom_line(aes(x = date, y = value_index, color = paste0(Operation2))) +
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 = seq(0, 1000, 10)) +
theme(legend.position = c(0.3, 0.8),
legend.title = element_blank()) +
geom_label_repel(data = . %>% filter(date == max(date) | date == min(date)),
aes(x = date, y = value_index, label = round(value), color = Operation2))
2017-
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation %in% c("B2 (y compris B3)"),
sheet == "Menages") %>%
filter(date >= as.Date("2017-01-01")) %>%
group_by(Operation2) %>%
arrange(date) %>%
mutate(value_index = 100*value/value[1]) %>%
ggplot + geom_line(aes(x = date, y = value_index, color = Operation2)) +
xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "1 year"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 1000, 5)) +
theme(legend.position = c(0.3, 0.8),
legend.title = element_blank()) +
geom_label_repel(data = . %>% filter(date == max(date) | date == min(date)),
aes(x = date, y = value_index, label = round(value), color = Operation2))
Comptes des ménages
Dividendes
Md€
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "D42",
sheet == "Menages") %>%
ggplot + geom_line(aes(x = date, y = value, color = paste0(sheet, " - ", Operation1))) +
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 = seq(-10, 100, 2),
labels = dollar_format(pre = "", su = " Md€")) +
theme(legend.position = c(0.2, 0.8),
legend.title = element_blank())
% du PIB
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "D42",
sheet == "Menages") %>%
left_join(gdp_quarterly, by = "date") %>%
ggplot + geom_line(aes(x = date, y = value/gdp)) +
xlab("") + ylab("Dividendes reçus, Ménages (% du PIB)") + 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, 0.1),
labels = percent_format(acc = 0.1)) +
theme(legend.position = c(0.2, 0.8),
legend.title = element_blank())
Revenu
% du PIB
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation %in% c("B6", "B7"),
sheet == "Menages") %>%
arrange(date) %>%
left_join(gdp_quarterly, by = "date") %>%
ggplot + geom_line(aes(x = date, y = value/gdp, color = Operation1)) +
xlab("") + ylab("% du PIB") + 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, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
Epargne
% du revenu
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation %in% c("B8", "B9NF", "B6", "P51"),
sheet == "Menages") %>%
select(date, value, operation) %>%
arrange(date) %>%
unique %>%
spread(operation, value) %>%
transmute(date,
`Epargne brute des ménages B8/B6` = B8/B6,
`Besoin (-) ou Capacité (+) de financement B9NF/B6` = B9NF/B6,
`Formation brute de capital fixe P51/B6` = P51/B6) %>%
gather(variable, value, -date) %>%
ggplot + geom_line(aes(x = date, y = value, color = variable)) +
xlab("") + ylab("% du revenu disponible brut (B6)") + 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, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
% du PIB
Tous
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation %in% c("B8", "B9NF", "P51"),
sheet == "Menages") %>%
arrange(date) %>%
left_join(gdp_quarterly, by = "date") %>%
mutate(Variable = ifelse(operation %in% c("B8", "B9NF"),
Operation1, Operation2)) %>%
ggplot + geom_line(aes(x = date, y = value/gdp, color = Variable)) +
xlab("") + ylab("% du PIB") + 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, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
2006-
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation %in% c("B8", "B9NF", "P51"),
sheet == "Menages") %>%
arrange(date) %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2006-01-01")) %>%
mutate(Variable = ifelse(operation %in% c("B8", "B9NF"),
Operation1, Operation2)) %>%
ggplot + geom_line(aes(x = date, y = value/gdp, color = Variable)) +
xlab("") + ylab("% du PIB") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "2 years"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
2015-
Code
t_recapAgent_val %>%
left_join(variable, by = c("sheet", "column")) %>%
filter(operation %in% c("B8", "B9NF", "P51"),
sheet == "Menages") %>%
arrange(date) %>%
left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("2015-01-01")) %>%
mutate(Variable = ifelse(operation %in% c("B8", "B9NF"),
Operation1, Operation2)) %>%
ggplot + geom_line(aes(x = date, y = value/gdp, color = Variable)) +
xlab("") + ylab("% du PIB") + theme_minimal() +
scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "1 year"),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 2),
labels = percent_format(acc = 1)) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())