source | dataset | Title | .html | .rData |
---|---|---|---|---|
insee | t_recapAgent_val | Récapitulatif des séries des comptes d'agents | 2025-10-10 | 2025-09-29 |
insee | CNT-2020-PIB-EQB-RF | Équilibre du produit intérieur brut | 2025-10-10 | 2025-10-09 |
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_conditional
2017T2-
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-01-01 | 2025-04-01 |
---|---|---|---|---|---|---|---|---|
APU | 24 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 0.351 | 1.387 | 1.393 |
APU | 28 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 10.254 | 15.819 | 15.780 |
ISBLSM | 16 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 0.165 | 0.797 | 0.729 |
ISBLSM | 18 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 0.046 | 0.166 | 0.153 |
Menages | 42 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 3.136 | 15.123 | 13.549 |
Menages | 46 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 3.146 | 12.843 | 11.436 |
RdM | 10 | NA | D41 | En provenance du reste du monde | Intérêts | 13.599 | 47.667 | 48.443 |
RdM | 31 | NA | D41 | à destination du reste du monde | Intérêts | 15.017 | 58.528 | 58.688 |
SF | 17 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 37.030 | 131.649 | 131.818 |
SF | 21 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 25.235 | 116.650 | 116.188 |
SNF | 17 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 14.792 | 32.133 | 32.580 |
SNF | 22 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 18.211 | 46.471 | 46.756 |
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-04-01 |
---|---|---|---|---|---|---|---|
APU | 24 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 0.139 | 1.393 |
APU | 28 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 7.969 | 15.780 |
ISBLSM | 16 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 0.126 | 0.729 |
ISBLSM | 18 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 0.028 | 0.153 |
Menages | 42 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 2.275 | 13.549 |
Menages | 46 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 2.298 | 11.436 |
RdM | 10 | NA | D41 | En provenance du reste du monde | Intérêts | 12.502 | 48.443 |
RdM | 31 | NA | D41 | à destination du reste du monde | Intérêts | 11.016 | 58.688 |
SF | 17 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 30.572 | 131.818 |
SF | 21 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 20.691 | 116.188 |
SNF | 17 | Compte d'affectation des revenus primaires | D41 | Reçu | Intérêts | 16.023 | 32.580 |
SNF | 22 | Compte d'affectation des revenus primaires | D41 | Versé | Intérêts | 16.663 | 46.756 |
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-01-01 | 2025-04-01 |
---|---|---|---|---|---|---|---|---|
APU | 25 | Compte d'affectation des revenus primaires | D42 | Reçu | Dividendes | 1.860 | 1.674 | 1.728 |
Menages | 43 | Compte d'affectation des revenus primaires | D42 | Reçu | Dividendes | 8.095 | 17.283 | 17.351 |
RdM | 11 | NA | D42 | En provenance du reste du monde | Dividendes | 13.898 | 33.420 | 34.251 |
RdM | 32 | NA | D42 | à destination du reste du monde | Dividendes | 11.212 | 18.781 | 19.308 |
SF | 18 | Compte d'affectation des revenus primaires | D42 | Reçu | Dividendes | 12.135 | 21.944 | 22.078 |
SF | 22 | Compte d'affectation des revenus primaires | D42 | Versé | Dividendes | 10.181 | 15.128 | 15.522 |
SNF | 18 | Compte d'affectation des revenus primaires | D42 | Reçu | Dividendes | 37.503 | 64.976 | 65.401 |
SNF | 23 | Compte d'affectation des revenus primaires | D42 | Versé | Dividendes | 46.725 | 76.109 | 76.094 |
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-01-01 | 2025-04-01 |
---|---|---|---|---|---|---|---|---|
APU | 64 | Compte de capital | B9NF | Besoin (-) ou Capacité (+) de financement | NA | -18.290 | -40.089 | -39.820 |
ISBLSM | 35 | Compte de capital | B9NF | Besoin (-) ou Capacité (+) de financement | NA | 0.080 | 1.333 | 1.252 |
Menages | 78 | Compte de capital | B9NF | Besoin (-) ou Capacité (+) de financement | NA | 14.408 | 44.884 | 46.413 |
RdM | 50 | NA | B9NF | Besoin (-) ou Capacité(+) de financement de la Nation | NA | -2.712 | 0.159 | 0.403 |
SF | 52 | Compte de capital | B9NF | Besoin (-) ou Capacité (+) de financement | NA | -1.621 | -4.243 | -1.852 |
SNF | 46 | Compte de capital | B9NF | Besoin (-) ou Capacité (+) de financement | NA | 2.711 | -1.725 | -5.590 |
B9NF - Besoin (-) ou Capacité (+) de financement
Tous
Md€
Code
%>%
t_recapAgent_val left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF") %>%
+ geom_line(aes(x = date, y = value, color = paste0(sheet, " - ", Operation1))) +
ggplot 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) %>%
+ geom_line(aes(x = date, y = value/gdp, color = sheet)) +
ggplot 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) %>%
+ geom_line(aes(x = date, y = value, color = sheet)) +
ggplot 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")) %>%
+ geom_line(aes(x = date, y = value/gdp, color = sheet)) +
ggplot 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) %>%
+ geom_line(aes(x = date, y = value, color = sheet)) +
ggplot 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) %>%
+ geom_line(aes(x = date, y = value, color = sheet)) +
ggplot 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")) %>%
+ geom_line(aes(x = date, y = value/gdp, color = sheet)) +
ggplot 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) %>%
+ geom_line(aes(x = date, y = value, color = sheet)) +
ggplot 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) %>%
+ geom_line(aes(x = date, y = value, color = sheet)) +
ggplot 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")) %>%
+ geom_line(aes(x = date, y = value/gdp, color = sheet)) +
ggplot 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) %>%
+ geom_line(aes(x = date, y = value, color = sheet)) +
ggplot 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) %>%
+ geom_line(aes(x = date, y = value, color = sheet)) +
ggplot 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")) %>%
+ geom_line(aes(x = date, y = value/gdp, color = sheet)) +
ggplot 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) %>%
+ geom_line(aes(x = date, y = value, color = sheet)) +
ggplot 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) %>%
+ geom_line(aes(x = date, y = value, color = sheet)) +
ggplot 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) %>%
+ geom_line(aes(x = date, y = value, color = sheet)) +
ggplot 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 -----------------------------------
<- t_recapAgent_val %>%
df_long 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) %>%
::pivot_wider(names_from = sheet, values_from = value) %>%
tidyrtransmute(
date,`Administrations\npubliques` = APU,
`Sociétés\n(SNF + SF)` = SNF + SF,
`Ménages` = Menages,
`Reste du\nmonde` = RdM
%>%
) ::pivot_longer(-date, names_to = "sheet", values_to = "value") %>%
tidyrarrange(sheet, date)
# --- Helpers dynamiques pour libellés -----------------------------------------
# Libellé "1er/2ème/3ème/4ème trimestre YYYY" en français
<- function(d) {
fr_trim_label <- lubridate::quarter(d)
q <- lubridate::year(d)
y <- c("1er", "2ème", "3ème", "4ème")[q]
ord paste0(ord, " trimestre ", y)
}
<- max(df_long$date, na.rm = TRUE) # ex. 2025-04-01
last_date <- fr_trim_label(last_date) # "2ème trimestre 2025"
last_label <- lubridate::year(min(df_long$date, na.rm = TRUE))
start_year
# --- Points de départ/arrivée pour étiquettes --------------------------------
<- df_long %>%
last_pts group_by(sheet) %>%
slice_max(order_by = date, n = 1, with_ties = FALSE) %>%
ungroup() %>%
mutate(lbl = percent(value, accuracy = 0.01, style_positive = "plus"))
<- df_long %>%
first_pts 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 ---------------------------------------------------------------------
<- c(
pal "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 ----------------------------------------------------------------------
<- t_recapAgent_val %>%
df_long 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) %>%
::pivot_wider(names_from = sheet, values_from = value) %>%
tidyrtransmute(
date,`Administrations\npubliques` = APU,
`Sociétés\n(SNF + SF)` = SNF + SF,
`Ménages` = Menages,
`Reste du\nmonde` = RdM
%>%
) ::pivot_longer(-date, names_to = "sheet", values_to = "value") %>%
tidyrarrange(sheet, date)
# --- Helpers dynamiques pour libellés -----------------------------------------
# Libellé "1er/2ème/3ème/4ème trimestre YYYY" en français
<- function(d) {
fr_trim_label <- lubridate::quarter(d)
q <- lubridate::year(d)
y <- c("1er", "2ème", "3ème", "4ème")[q]
ord paste0(ord, " trimestre ", y)
}
<- max(df_long$date, na.rm = TRUE) # ex. 2025-04-01
last_date <- fr_trim_label(last_date) # "2ème trimestre 2025"
last_label <- lubridate::year(min(df_long$date, na.rm = TRUE))
start_year
# Last obs per series for labels
<- df_long %>%
last_pts 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
<- df_long %>%
first_pts 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)
<- c(
pal "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)) %>%
+ geom_line(aes(x = date, y = value, color = sheet)) +
ggplot 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)) %>%
+ geom_line(aes(x = date, y = value, color = sheet)) +
ggplot 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
<- t_recapAgent_val %>%
plot_df left_join(variable, by = c("sheet", "column")) %>%
filter(operation == "B9NF",
%in% c("RdM", "APU")) %>%
sheet 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)
<- plot_df %>%
last_pts group_by(Sheet) %>%
filter(date == max(date, na.rm = TRUE)) %>%
ungroup()
# 3) Palette simple et cohérente
<- c("Solde public" = "#1f77b4", "Solde extérieur (balance courante)" = "#ff7f0e")
pal
# --- Helpers dynamiques pour libellés -----------------------------------------
# Libellé "1er/2ème/3ème/4ème trimestre YYYY" en français
<- function(d) {
fr_trim_label <- lubridate::quarter(d)
q <- lubridate::year(d)
y <- c("1er", "2ème", "3ème", "4ème")[q]
ord paste0(ord, " trimestre ", y)
}
<- max(plot_df$date, na.rm = TRUE) # ex. 2025-04-01
last_date <- fr_trim_label(last_date) # "2ème trimestre 2025"
last_label <- lubridate::year(min(plot_df$date, na.rm = TRUE))
start_year
# 4) Le graphique
<- ggplot(plot_df, aes(x = date, y = value_gdp, color = Sheet)) +
p 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",
%in% c("RdM", "APU")) %>%
sheet 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) %>%
+ geom_line(aes(x = date, y = value_gdp, color = Sheet)) +
ggplot 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",
%in% c("RdM", "APU")) %>%
sheet left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("1952-01-01"),
<= as.Date("1964-01-01")) %>%
date mutate(Sheet = ifelse(sheet == "APU", "Solde public", "Solde extérieur (Balance courante)")) %>%
+ geom_line(aes(x = date, y = value/gdp, color = Sheet)) +
ggplot 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",
%in% c("RdM", "APU")) %>%
sheet left_join(gdp_quarterly, by = "date") %>%
filter(date >= as.Date("1970-01-01"),
<= as.Date("1980-01-01")) %>%
date mutate(Sheet = ifelse(sheet == "APU", "Solde public", "Solde extérieur (Balance courante)")) %>%
+ geom_line(aes(x = date, y = value/gdp, color = Sheet)) +
ggplot 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",
%in% c("RdM", "APU")) %>%
sheet 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) %>%
+ geom_line(aes(x = date, y = value_gdp, color = Sheet)) +
ggplot 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",
%in% c("RdM", "APU")) %>%
sheet 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")) %>%
+ geom_line(aes(x = date, y = value_gdp, color = Sheet)) +
ggplot 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") %>%
+ geom_line(aes(x = date, y = value, color = paste0(sheet, " - ", Operation1))) +
ggplot 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") %>%
+ geom_line(aes(x = date, y = value/gdp, color = paste0(sheet, " - ", Operation1))) +
ggplot 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") %>%
+ geom_line(aes(x = date, y = value/gdp, color = Variable)) +
ggplot 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"),
== "Menages") %>%
sheet left_join(gdp_quarterly, by = "date") %>%
+ geom_line(aes(x = date, y = value/gdp, color = Operation2)) +
ggplot 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"),
== "Menages") %>%
sheet + geom_line(aes(x = date, y = value, color = Operation2)) +
ggplot 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"),
== "Menages") %>%
sheet filter(date >= as.Date("1999-01-01")) %>%
group_by(Operation2) %>%
arrange(date) %>%
mutate(value = 100*value/value[1]) %>%
+ geom_line(aes(x = date, y = value, color = paste0(Operation1, Operation2))) +
ggplot 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"),
== "Menages") %>%
sheet filter(date >= as.Date("1999-01-01")) %>%
group_by(Operation2) %>%
arrange(date) %>%
mutate(value = 100*value/value[1]) %>%
+ geom_line(aes(x = date, y = value, color = paste0(Operation1, Operation2))) +
ggplot 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)"),
== "Menages") %>%
sheet filter(date >= as.Date("1999-01-01")) %>%
group_by(Operation2) %>%
arrange(date) %>%
mutate(value_index = 100*value/value[1]) %>%
+ geom_line(aes(x = date, y = value_index, color = paste0(Operation2))) +
ggplot 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)"),
== "Menages") %>%
sheet filter(date >= as.Date("2017-01-01")) %>%
group_by(Operation2) %>%
arrange(date) %>%
mutate(value_index = 100*value/value[1]) %>%
+ geom_line(aes(x = date, y = value_index, color = Operation2)) +
ggplot 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",
== "Menages") %>%
sheet + geom_line(aes(x = date, y = value, color = paste0(sheet, " - ", Operation1))) +
ggplot 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",
== "Menages") %>%
sheet left_join(gdp_quarterly, by = "date") %>%
+ geom_line(aes(x = date, y = value/gdp)) +
ggplot 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"),
== "Menages") %>%
sheet arrange(date) %>%
left_join(gdp_quarterly, by = "date") %>%
+ geom_line(aes(x = date, y = value/gdp, color = Operation1)) +
ggplot 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"),
== "Menages") %>%
sheet 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) %>%
+ geom_line(aes(x = date, y = value, color = variable)) +
ggplot 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"),
== "Menages") %>%
sheet arrange(date) %>%
left_join(gdp_quarterly, by = "date") %>%
mutate(Variable = ifelse(operation %in% c("B8", "B9NF"),
%>%
Operation1, Operation2)) + geom_line(aes(x = date, y = value/gdp, color = Variable)) +
ggplot 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"),
== "Menages") %>%
sheet 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)) + geom_line(aes(x = date, y = value/gdp, color = Variable)) +
ggplot 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"),
== "Menages") %>%
sheet 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)) + geom_line(aes(x = date, y = value/gdp, color = Variable)) +
ggplot 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())