Produit intérieur brut (PIB) et ses composantes

Données - INSEE

Info

Last observation: 2025

First observation: 1949

Number of observations: 1 601

Last data update: 23 jul 2026, 22:45. Last compile: 24 jul 2026, 05:32

Structure

Informations

  • Base = un ensemble fixé de concepts, nomenclatures, et méthodes. (dans le vocabulaire de la Comptabilité Nationale Française (CNF))

  • Création de la CNF dans les années 1950.

  • Changements de base: 1956, 1959, 1962, 1971, 1980, 1995, 2000, 2005, 2010, 2014

  • Les comptes de la nation en 2022. html

Données sur la macroéconomie en France

source dataset Title .html .rData
insee CNA-2020-PIB Produit intérieur brut (PIB) et ses composantes 2026-07-23 2026-07-23
bdf CFT Comptes Financiers Trimestriels 2026-07-23 2025-03-09
insee CNA-2014-CONSO-SI Dépenses de consommation finale par secteur institutionnel 2026-07-23 2026-07-23
insee CNA-2014-CSI Comptes des secteurs institutionnels 2026-07-23 2026-07-23
insee CNA-2014-FBCF-BRANCHE Formation brute de capital fixe (FBCF) par branche 2026-07-23 2026-07-23
insee CNA-2014-FBCF-SI Formation brute de capital fixe (FBCF) par secteur institutionnel 2026-07-23 2026-07-23
insee CNA-2014-RDB Revenu et pouvoir d’achat des ménages 2026-07-23 2026-07-23
insee CNA-2020-CONSO-MEN Consommation des ménages 2026-07-23 2026-07-23
insee CNT-2014-CB Comptes des branches 2026-07-23 2026-07-23
insee CNT-2014-CSI Comptes de secteurs institutionnels 2026-07-23 2026-07-22
insee CNT-2014-OPERATIONS Opérations sur biens et services 2026-07-23 2026-07-23
insee CNT-2014-PIB-EQB-RF Équilibre du produit intérieur brut 2026-07-23 2026-07-23
insee CONSO-MENAGES-2020 Consommation des ménages en biens 2026-07-23 2026-07-23
insee ICA-2015-IND-CONS Indices de chiffre d'affaires dans l'industrie et la construction 2026-07-23 2026-07-23
insee conso-mensuelle Consommation de biens, données mensuelles 2026-07-23 2023-07-04
insee t_1101 1.101 – Le produit intérieur brut et ses composantes à prix courants (En milliards d'euros) 2026-07-23 2022-01-02
insee t_1102 1.102 – Le produit intérieur brut et ses composantes en volume aux prix de l'année précédente chaînés (En milliards d'euros 2014) 2026-07-23 2020-10-30
insee t_1105 1.105 – Produit intérieur brut - les trois approches à prix courants (En milliards d'euros) - t_1105 2026-07-23 2020-10-30

Données sur l’inflation en France

source dataset Title .html .rData
insee ILC-ILAT-ICC Indices pour la révision d’un bail commercial ou professionnel 2026-07-23 2026-07-23
insee INDICES_LOYERS Indices des loyers d'habitation (ILH) 2026-07-23 2026-07-23
insee IPC-1970-1980 Indice des prix à la consommation - Base 1970, 1980 2026-07-23 2026-07-23
insee IPC-1990 Indices des prix à la consommation - Base 1990 2026-07-23 2026-07-23
insee IPC-2015 Indice des prix à la consommation - Base 2015 2026-07-23 2026-07-23
insee IPC-PM-2015 Prix moyens de vente de détail 2026-07-23 2026-07-23
insee IPCH-2015 Indices des prix à la consommation harmonisés 2026-07-23 2026-07-23
insee IPCH-IPC-2015-ensemble Indices des prix à la consommation harmonisés 2026-07-23 2026-07-23
insee IPGD-2015 Indice des prix dans la grande distribution 2026-07-23 2026-07-23
insee IPLA-IPLNA-2015 Indices des prix des logements neufs et Indices Notaires-Insee des prix des logements anciens 2026-07-23 2026-07-23
insee IPPI-2015 Indices de prix de production et d'importation dans l'industrie 2026-07-23 2026-07-23
insee IRL Indice pour la révision d’un loyer d’habitation 2026-07-23 2026-07-23
insee SERIES_LOYERS Variation des loyers 2026-07-23 2026-07-23
insee T_CONSO_EFF_FONCTION Consommation effective des ménages par fonction 2026-07-23 2025-12-22
insee bdf2017 Budget de famille 2017 2026-07-23 2023-11-21
insee echantillon-agglomerations-IPC-2024 Échantillon d’agglomérations enquêtées de l’IPC en 2024 2026-07-23 2026-01-27
insee echantillon-agglomerations-IPC-2025 Échantillon d’agglomérations enquêtées de l’IPC en 2025 2026-07-23 2026-01-27
insee liste-varietes-IPC-2024 Liste des variétés pour la mesure de l'IPC en 2024 2026-07-23 2025-04-02
insee liste-varietes-IPC-2025 Liste des variétés pour la mesure de l'IPC en 2025 2026-07-23 2026-01-27
insee ponderations-elementaires-IPC-2024 Pondérations élémentaires 2024 intervenant dans le calcul de l’IPC 2026-07-23 2025-04-02
insee ponderations-elementaires-IPC-2025 Pondérations élémentaires 2025 intervenant dans le calcul de l’IPC 2026-07-23 2026-01-27
insee table_conso_moyenne_par_categorie_menages Montants de consommation selon différentes catégories de ménages 2026-07-23 2026-01-27
insee table_poste_au_sein_sous_classe_ecoicopv2_france_entiere_ Ventilation de chaque sous-classe (niveau 4 de la COICOP v2) en postes et leurs pondérations 2026-07-23 2026-01-27
insee tranches_unitesurbaines Poids de chaque tranche d’unités urbaines dans la consommation 2026-07-23 2026-01-27

LAST_COMPILE

LAST_COMPILE
2026-07-24

Dernière

Code
`CNA-2020-PIB` %>%
  filter(TIME_PERIOD == max(TIME_PERIOD)) %>%
  select(TIME_PERIOD, TITLE_FR, OBS_VALUE) %>%
  print_table_conditional()
TIME_PERIOD TITLE_FR OBS_VALUE
2025 Comptes nationaux annuels base 2020 - Dépense de consommation finale - APU Administrations publiques - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.146
2025 Comptes nationaux annuels base 2020 - Importations de biens et de services - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume -0.958
2025 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - APU Administrations publiques - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.115
2025 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - Ménages hors entrepreneurs individuels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume -0.009
2025 Comptes nationaux annuels base 2020 - Produit intérieur brut approche produit - Total des secteurs institutionnels - Total des produits - Prix chaîné année de base (non équilibré) 2646746.000
2025 Comptes nationaux annuels base 2020 - Produit intérieur brut approche produit - Total des secteurs institutionnels - Total des produits - Prix courant 2991056.000
2025 Comptes nationaux annuels base 2020 - Produit intérieur brut approche produit - Total des secteurs institutionnels - Total des produits - Indice de prix chaîné année de base (non équilibré) 113.000
2025 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - Sociétés et E.I. financières - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume -0.053
2025 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.107
2025 Comptes nationaux annuels base 2020 - Acquisitions moins cessions d'objets de valeur - Total des secteurs institutionnels - Total des produits (nouvelle nomencl.) - Contribution à l'évolution du produit intérieur brut en volume -0.002
2025 Comptes nationaux annuels base 2020 - Dépense de consommation finale - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.343
2025 Comptes nationaux annuels base 2020 - Dépense de consommation finale - Instituts sans but lucratif au service des ménages - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume -0.005
2025 Comptes nationaux annuels base 2020 - Produit intérieur brut par habitant - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Prix courant 43350.238
2025 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - Sociétés et E.I. non financières - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.054
2025 Comptes nationaux annuels base 2020 - Formation brute de capital fixe - Instituts sans but lucratif au service des ménages - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.001
2025 Comptes nationaux annuels base 2020 - Solde des échanges extérieurs de biens et services - Total des sect. institutionnels - Total des produits (nouvelle nomencl.) - Contribution à l'évolution du produit intérieur brut en volume -0.172
2025 Comptes nationaux annuels base 2020 - Variation des stocks - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.528
2025 Comptes nationaux annuels base 2020 - Produit intérieur brut - Evolution en volume - Prix chaîné année de base (non équilibré) 0.805
2025 Comptes nationaux annuels base 2020 - Produit intérieur brut par habitant - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Prix chaîné année de base (non équilibré) 38360.050
2025 Comptes nationaux annuels base 2020 - Dépense de consommation finale - Ménages hors entrepreneurs individuels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.202
2025 Comptes nationaux annuels base 2020 - Exportations de biens et de services - Total des secteurs institutionnels - Total des produits (nouvelle nomenclature) - Contribution à l'évolution du produit intérieur brut en volume 0.786

Structure

IDBANK = OPERATION, NATURE, SECT-INST, UNIT_MEASURE

Code
`CNA-2020-PIB` %>%
  
  
  group_by(OPERATION, NATURE, `SECT-INST`, UNIT_MEASURE) %>%
  summarise(Nobs = n()) %>%
  mutate_at(vars(-Nobs, -OPERATION), funs(as.factor(.))) %>%
  arrange(-Nobs) %>%
  print_table_conditional
OPERATION NATURE SECT-INST UNIT_MEASURE Nobs
PIB_H VALEUR_ABSOLUE S0 EUROS_HABITANTS 154
PIB INDICE S0 SO 77
PIB VALEUR_ABSOLUE S0 EUR2020 77
PIB VALEUR_ABSOLUE S0 EUROS_COURANTS 77
B11 PROPORTION_POURCENTAGE S0 SO 76
P3 PROPORTION_POURCENTAGE S0 SO 76
P3 PROPORTION_POURCENTAGE S13 SO 76
P3 PROPORTION_POURCENTAGE S14B SO 76
P3 PROPORTION_POURCENTAGE S15 SO 76
P51G PROPORTION_POURCENTAGE S0 SO 76
P51G PROPORTION_POURCENTAGE S11ES14AA SO 76
P51G PROPORTION_POURCENTAGE S12ES14AF SO 76
P51G PROPORTION_POURCENTAGE S13 SO 76
P51G PROPORTION_POURCENTAGE S14B SO 76
P51G PROPORTION_POURCENTAGE S15 SO 76
P52 PROPORTION_POURCENTAGE S0 SO 76
P53 PROPORTION_POURCENTAGE S0 SO 76
P6 PROPORTION_POURCENTAGE S0 SO 76
P7 PROPORTION_POURCENTAGE S0 SO 76
PIB PROPORTION_POURCENTAGE S0 POURCENT 76

PIB Courants and Constants

Tous

Code
`CNA-2020-PIB` %>%
  year_to_date %>%
  filter(OPERATION == "PIB",
         UNIT_MEASURE %in% c("EUR2020", "EUROS_COURANTS")) %>%
  select(date, UNIT_MEASURE, OBS_VALUE) %>%
  mutate(OBS_VALUE = OBS_VALUE %>% as.numeric,
         UNIT_MEASURE = paste0("PIB_", UNIT_MEASURE)) %>%
  spread(UNIT_MEASURE, OBS_VALUE) %>%
  print_table_conditional()

2017-

Code
`CNA-2020-PIB` %>%
  filter(as.numeric(TIME_PERIOD) >= 2017) %>%
  filter(OPERATION == "PIB",
         UNIT_MEASURE %in% c("EUR2020", "EUROS_COURANTS")) %>%
  select(TIME_PERIOD, UNIT_MEASURE, OBS_VALUE) %>%
  mutate(OBS_VALUE = OBS_VALUE %>% as.numeric,
         UNIT_MEASURE = paste0("PIB_", UNIT_MEASURE)) %>%
  spread(UNIT_MEASURE, OBS_VALUE) %>%
  print_table_conditional
TIME_PERIOD PIB_EUR2020 PIB_EUROS_COURANTS
2017 2415116 2291681
2018 2454866 2355363
2019 2504637 2432207
2020 2318276 2318276
2021 2477828 2508102
2022 2545145 2653997
2023 2586706 2833826
2024 2625622 2935236
2025 2646746 2991056

PIB Nominal en France

Français

Step 0

Code
`CNA-2020-PIB` %>%
  filter(OPERATION == "PIB", 
         UNIT_MEASURE == "EUROS_COURANTS") %>%
  select(TIME_PERIOD, `PIB Nominal` = OBS_VALUE) %>%
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(is.finite(`PIB Nominal`)) %>%
  group_by(date) %>%
  select(-year) %>%
  gather(variable, value, -date) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB nominal de la France (en € courants)") +
  geom_line(aes(x = date, y = value/10^3, color = variable, linetype = variable)) + 
  scale_linetype_manual(values = c("solid", "solid", "dashed", "solid")) +
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 5) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(200, 3000, 200),
                labels = scales::dollar_format(a = 1, prefix = "", suffix = "Md€"))

PIB Réel en France

English

Code
fit <- `CNA-2020-PIB` %>%
  filter(OPERATION == "PIB", 
         UNIT_MEASURE == "EUR2020") %>%
  select(TIME_PERIOD, `Real GDP` = OBS_VALUE) %>%
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(is.finite(`Real GDP`))  %>%
  filter(year <= 1971) %>%
  lm(log(`Real GDP`) ~ year, data = .) %>%
  pluck("coefficients")


fit_2019 <- `CNA-2020-PIB` %>%
  filter(OPERATION == "PIB", 
         UNIT_MEASURE == "EUR2020") %>%
  select(TIME_PERIOD, `Real GDP` = OBS_VALUE) %>%
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(is.finite(`Real GDP`)) %>%
  lm(log(`Real GDP`) ~ year, data = .) %>%
  pluck("coefficients")

fit
# (Intercept)        year 
# -87.4994240   0.0513393
Code
fit_2019
#  (Intercept)         year 
# -42.17299922   0.02827044
Code
`CNA-2020-PIB` %>%
  filter(OPERATION == "PIB", 
         UNIT_MEASURE == "EUR2020") %>%
  select(TIME_PERIOD, `Real GDP` = OBS_VALUE) %>%
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(is.finite(`Real GDP`)) %>%
  mutate(`Trend to 2024 (g = 2.9%)` = lm(log(`Real GDP`) ~ year) %>% fitted %>% exp,
         `Trend to 1971, extrapolated` = ifelse(year>=1971, 
                                                (fit[1]+fit[2]*year) %>% exp, 
                                                NA),
         `Trend to 1971 (g = 5.1%)` = ifelse(year<=1971, 
                                             (fit[1]+fit[2]*year) %>% exp, 
                                             NA)) %>%
  group_by(date) %>%
  select(-year) %>%
  gather(variable, value, -date) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("France's GDP") +
  geom_line(aes(x = date, y = value/10^6, color = variable, linetype = variable)) + 
  scale_color_manual(values = viridis(4)[c(3, 1, 1, 2)]) +
  scale_linetype_manual(values = c("solid", "solid", "dashed", "solid")) +
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 5) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = 20*2^seq(-7, 1, 1),
                labels = scales::dollar_format(a = .1, prefix = "", suffix = "Tn€"))

Français

Step 0

1949-

Linéaire
Code
plot_lineaire <- `CNA-2020-PIB` %>%
  filter(OPERATION %in% c("PIB", "P3"), 
         UNIT_MEASURE == "EUR2020") %>%
  
  year_to_date %>%
  mutate(year = year(date)) %>%
  group_by(date) %>%
  select(-year) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB réel de la France (en € 2020)") +
  geom_line(aes(x = date, y = OBS_VALUE/10^3, color = Operation)) + 
  scale_linetype_manual(values = c("solid", "solid", "dashed", "solid")) +
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 10) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(200, 3000, 200),
                labels = scales::dollar_format(a = 1, prefix = "", suffix = "Md€"))

plot_lineaire

Log
Code
plot_log <- plot_lineaire+
  scale_y_log10(breaks = 20000*2^seq(-7, 1, 0.5),
                labels = scales::dollar_format(a = 1, prefix = "", suffix = "Md€"))

plot_log

Both
Code
ggarrange(plot_lineaire + ggtitle("Echelle Linéaire"), plot_log + ylab("") +  ggtitle("Echelle Log"), common.legend = T)

1960-

Linéaire
Code
plot_lineaire <- `CNA-2020-PIB` %>%
  filter(OPERATION %in% c("PIB", "P3"), 
         UNIT_MEASURE == "EUR2020") %>%
  
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(year >= 1960) %>%
  group_by(date) %>%
  select(-year) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB réel de la France (en € 2020)") +
  geom_line(aes(x = date, y = OBS_VALUE/10^3, color = Operation)) + 
  scale_linetype_manual(values = c("solid", "solid", "dashed", "solid")) +
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 10) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(200, 3000, 200),
                labels = scales::dollar_format(a = 1, prefix = "", suffix = "Md€"))

plot_lineaire

Log
Code
plot_log <- plot_lineaire+
  scale_y_log10(breaks = 20000*2^seq(-7, 1, 0.5),
                labels = scales::dollar_format(a = 1, prefix = "", suffix = "Md€"))

plot_log

Both
Code
ggarrange(plot_lineaire + ggtitle("Echelle Linéaire"), plot_log + ggtitle("Echelle Log") + ylab(""), common.legend = T)

2011-2013

Code
plot_lineaire <- `CNA-2020-PIB` %>%
  filter(OPERATION %in% c("PIB", "P3"), 
         UNIT_MEASURE == "EUR2020") %>%
  
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(year >= 2011,
         year <= 2013) %>%
  arrange(date) %>%
  mutate(OBS_VALUE = 100*OBS_VALUE/OBS_VALUE[1]) %>%
  group_by(date) %>%
  select(-year) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB réel de la France (en € 2020)") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Operation)) + 
  scale_linetype_manual(values = c("solid", "solid", "dashed", "solid")) +
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 1) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(100, 3000, 0.1))

plot_lineaire

Step 2

Code
`CNA-2020-PIB` %>%
  filter(OPERATION == "PIB", 
         UNIT_MEASURE == "EUR2020") %>%
  select(TIME_PERIOD, `PIB Réel` = OBS_VALUE) %>%
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(is.finite(`PIB Réel`)) %>%
  mutate(`Tendance jusque 2024 (g = 2.9%)` = lm(log(`PIB Réel`) ~ year) %>% fitted %>% exp) %>%
  group_by(date) %>%
  select(-year) %>%
  gather(variable, value, -date) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB réel de la France (en € 2020)") +
  geom_line(aes(x = date, y = value/10^3, color = variable, linetype = variable)) + 
  scale_linetype_manual(values = c("solid", "solid", "dashed", "solid")) +
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 5) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = 20000*2^seq(-7, 1, 1),
                labels = scales::dollar_format(a = 1, prefix = "", suffix = "Md€"))

Step 3

Code
`CNA-2020-PIB` %>%
  filter(OPERATION == "PIB", 
         UNIT_MEASURE == "EUR2020") %>%
  select(TIME_PERIOD, `PIB Réel` = OBS_VALUE) %>%
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(is.finite(`PIB Réel`)) %>%
  mutate(`Tendance jusque 1971, extrapolée` = ifelse(year>=1971, 
                                                (fit[1]+fit[2]*year) %>% exp, 
                                                NA),
         `Tendance jusque 1971 (g = 5.1%)` = ifelse(year<=1971, 
                                             (fit[1]+fit[2]*year) %>% exp, 
                                             NA)) %>%
  group_by(date) %>%
  select(-year) %>%
  gather(variable, value, -date) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB réel de la France (en € 2020)") +
  geom_line(aes(x = date, y = value/10^3, color = variable, linetype = variable)) + 
  scale_linetype_manual(values = c("solid", "solid", "dashed", "solid")) +
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 5) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = 20000*2^seq(-7, 1, 1),
                labels = scales::dollar_format(a = 1, prefix = "", suffix = "Md€"))

Step 4

Code
`CNA-2020-PIB` %>%
  filter(OPERATION == "PIB", 
         UNIT_MEASURE == "EUR2020") %>%
  select(TIME_PERIOD, `PIB Réel` = OBS_VALUE) %>%
  year_to_date %>%
  mutate(year = year(date)) %>%
  filter(is.finite(`PIB Réel`)) %>%
  mutate(`Tendance jusque 2024 (g = 2.9%)` = lm(log(`PIB Réel`) ~ year) %>% fitted %>% exp,
         `Tendance jusque 1971, extrapolée` = ifelse(year>=1971, 
                                                (fit[1]+fit[2]*year) %>% exp, 
                                                NA),
         `Tendance jusque 1971 (g = 5.1%)` = ifelse(year<=1971, 
                                             (fit[1]+fit[2]*year) %>% exp, 
                                             NA)) %>%
  group_by(date) %>%
  select(-year) %>%
  gather(variable, value, -date) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB réel de la France (en € 2020)") +
  geom_line(aes(x = date, y = value/10^3, color = variable, linetype = variable)) + 
  scale_linetype_manual(values = c("solid", "solid", "dashed", "solid")) +
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 5) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = 20000*2^seq(-7, 1, 1),
                labels = scales::dollar_format(a = 1, prefix = "", suffix = "Md€"))

Contributions à la croissance du PIB

Consumption, FBCF, PIB

Code
`CNA-2020-PIB` %>%
  filter(OPERATION %in% c("P3", "P51G"), 
         NATURE == "PROPORTION_POURCENTAGE",
         `SECT-INST` == "S0") %>%
  year_to_date %>%
  select(OPERATION, OBS_VALUE, date) %>%
  left_join(OPERATION,  by = "OPERATION") %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Contribution à la croissance du PIB") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = Operation)) + 
  
  theme(legend.title = element_blank(),
        legend.position = c(0.7, 0.9)) +
  scale_x_date(breaks = seq(1920, 2100, 5) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-200, 200, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  geom_hline(yintercept = 0, linetype = "dashed")

Exportations, Importations - P6, P7 (%)

Code
`CNA-2020-PIB` %>%
  filter(OPERATION %in% c("P6", "P7"), 
         NATURE == "PROPORTION_POURCENTAGE",
         `SECT-INST` == "S0") %>%
  year_to_date %>%
  select(OPERATION, OBS_VALUE, date) %>%
  left_join(OPERATION,  by = "OPERATION") %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = Operation)) + 
  
  theme(legend.title = element_blank(),
        legend.position = c(0.8, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 5) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-200, 200, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  geom_hline(yintercept = 0, linetype = "dashed")

Solde Net P6-P7

Code
`CNA-2020-PIB` %>%
  filter(OPERATION %in% c("B11", "P6", "P7"), 
         NATURE == "PROPORTION_POURCENTAGE",
         `SECT-INST` == "S0") %>%
  year_to_date %>%
  select(OPERATION, OBS_VALUE, date) %>%
  left_join(OPERATION,  by = "OPERATION") %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = Operation)) + 
  
  theme(legend.title = element_blank(),
        legend.position = c(0.7, 0.2)) +
  scale_x_date(breaks = seq(1920, 2100, 5) %>% paste0("-01-01") %>% as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-200, 200, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  geom_hline(yintercept = 0, linetype = "dashed")