7.301 - Compte des administrations publiques (S13) - T_7301

Données - INSEE

Last observation: 2025 (N = 117)

First observation: 1949 (N = 80)

Last data update: 02 sept. 2026, 19:13

Last compile: 04 sept. 2026, 02:20

Ensemble des administrations publiques

B1G - Investissement

% du PIB

Tous

Code
T_7301 |>
  filter(code %in% c("P51C", "P51G")) |>
  select(year, code, value) |>
  spread(code, value) |>
  transmute(year,
            `Investissement brut` = P51G,
            `Investissement net` = P51G-P51C) |>
  gather(Variable, value, -year) |>
  year_to_date2() |>
  arrange(desc(date)) |>
  left_join(gdp, by = "date") |>
  ggplot() + geom_line(aes(x = date, y = value / gdp, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Investissement (% du PIB)") +
  scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 500, 1),
                labels = percent_format(accuracy = 1)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank())

1978-

Code
T_7301 |>
  filter(code %in% c("P51C", "P51G"),
         year >= 1978) |>
  select(year, code, value) |>
  spread(code, value) |>
  transmute(year,
            `Investissement brut` = P51G,
            `Investissement net` = P51G-P51C) |>
  gather(Variable, value, -year) |>
  year_to_date2() |>
  arrange(desc(date)) |>
  left_join(gdp, by = "date") |>
  mutate(value_gdp = value / gdp) |>
  ggplot() + geom_line(aes(x = date, y = value / gdp, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Investissement (% du PIB)") +
  scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 500, .2),
                labels = percent_format(accuracy = .1)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank()) +
  geom_text_repel(aes(x = date, y = value_gdp, label = value_gdp |> percent(0.1)),
                  fontface ="plain", size = 3)

1990-

Code
T_7301 |>
  filter(code %in% c("P51C", "P51G"),
         year >= 1990) |>
  select(year, code, value) |>
  spread(code, value) |>
  transmute(year,
            `Investissement brut` = P51G,
            `Investissement net` = P51G-P51C) |>
  gather(Variable, value, -year) |>
  year_to_date2() |>
  arrange(desc(date)) |>
  left_join(gdp, by = "date") |>
  mutate(value_gdp = value / gdp) |>
  ggplot() + geom_line(aes(x = date, y = value / gdp, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Investissement (% du PIB)") +
  scale_x_date(breaks = seq(1940, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 500, .2),
                labels = percent_format(accuracy = .1)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank()) +
  geom_text_repel(aes(x = date, y = value_gdp, label = value_gdp |> percent(0.1)),
                  fontface ="plain", size = 3)

B1G - Valeur ajoutée brute

% du PIB

Tous

Code
T_7301 |>
  filter(code %in% c("B1G")) |>
  year_to_date2() |>
  left_join(gdp, by = "date") |>
  ggplot() + geom_line(aes(x = date, y = value / gdp)) +
  theme_minimal() + xlab("") + ylab("Valeur ajoutée brute (% du PIB)") +
  scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 500, 1),
                labels = percent_format(accuracy = 1)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank())

1978-

Code
T_7301 |>
  year_to_date2() |>
  filter(code %in% c("B1G"),
         date >= as.Date("1978-01-01")) |>
  left_join(gdp, by = "date") |>
  mutate(value_gdp = value / gdp) |>
  ggplot() + geom_line(aes(x = date, y = value_gdp)) +
  theme_minimal() + xlab("") + ylab("Valeur ajoutée brute (% du PIB)") +
  scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 500, .2),
                labels = percent_format(accuracy = .1)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank()) +
  geom_text_repel(aes(x = date, y = value_gdp, label = value_gdp |> percent(0.1)),
                  fontface ="plain", size = 3)

1990-

Code
T_7301 |>
  year_to_date2() |>
  filter(code %in% c("B1G"),
         date >= as.Date("1990-01-01")) |>
  left_join(gdp, by = "date") |>
  mutate(value_gdp = value / gdp) |>
  ggplot() + geom_line(aes(x = date, y = value_gdp)) +
  geom_point(aes(x = date, y = value_gdp)) +
  theme_minimal() + xlab("") + ylab("Valeur ajoutée brute (% du PIB)") +
  scale_x_date(breaks = seq(1940, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 500, .2),
                labels = percent_format(accuracy = .1)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank()) +
  geom_text_repel(aes(x = date, y = value_gdp, label = value_gdp |> percent(0.1)),
                  fontface ="plain", size = 3)

2000-

Code
T_7301 |>
  year_to_date2() |>
  filter(code %in% c("B1G"),
         date >= as.Date("2000-01-01")) |>
  left_join(gdp, by = "date") |>
  mutate(value_gdp = value / gdp) |>
  ggplot() + geom_line(aes(x = date, y = value_gdp)) +
  geom_point(aes(x = date, y = value_gdp)) +
  theme_minimal() + xlab("") + ylab("Valeur ajoutée brute (% du PIB)") +
  scale_x_date(breaks = seq(1940, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 500, .2),
                labels = percent_format(accuracy = .1)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank()) +
  geom_text_repel(aes(x = date, y = value_gdp, label = value_gdp |> percent(0.1)),
                  fontface ="plain", size = 3)

2007-

Code
T_7301 |>
  year_to_date2() |>
  filter(code %in% c("B1G"),
         date >= as.Date("2007-01-01")) |>
  left_join(gdp, by = "date") |>
  mutate(value_gdp = value / gdp) |>
  ggplot() + geom_line(aes(x = date, y = value_gdp)) +
  geom_point(aes(x = date, y = value_gdp)) +
  theme_minimal() + xlab("") + ylab("Valeur ajoutée (% du PIB)") +
  scale_x_date(breaks = seq(1940, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 500, .2),
                labels = percent_format(accuracy = .1)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank()) +
  geom_text_repel(aes(x = date, y = value_gdp, label = value_gdp |> percent(0.1)),
                  fontface ="plain", size = 3)

Intérêts

Milliards

Tous

Code
T_7301 |>
  filter(code %in% c("D41")) |>
  year_to_date2() |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = value, color = label)) +
  scale_x_date(breaks = seq(1945, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-900, 900, 20),
                     labels = scales::dollar_format(pre = "", su = " Md€"))

Capacité ou besoin de financement

% du PIB

Tous

Code
T_7301 |>
  filter(code %in% c("B9")) |>
  year_to_date2() |>
  left_join(gdp, by = "date") |>
  transmute(date, value_gdp = value / gdp) |>
  ggplot() + geom_line(aes(x = date, y = value_gdp)) +
  theme_minimal() + xlab("") + ylab("Déficit public (% du PIB)") +
  scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 500, 1),
                labels = percent_format(accuracy = 1)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank())

1978-

Code
T_7301 |>
  year_to_date2() |>
  filter(code %in% c("B9"),
         date >= as.Date("1978-01-01")) |>
  left_join(gdp, by = "date") |>
  mutate(value_gdp = value / gdp) |>
  ggplot() + geom_line(aes(x = date, y = value_gdp)) +
  theme_minimal() + xlab("") + ylab("Déficit public (% du PIB)") +
  scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 500, 1),
                labels = percent_format(accuracy = 1)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank()) +
  geom_text_repel(aes(x = date, y = value_gdp, label = value_gdp |> percent(0.1)),
                  fontface ="plain", size = 3)

1990-

Code
T_7301 |>
  year_to_date2() |>
  filter(code %in% c("B9"),
         date >= as.Date("1990-01-01")) |>
  left_join(gdp, by = "date") |>
  mutate(value_gdp = value / gdp) |>
  ggplot() + geom_line(aes(x = date, y = value_gdp)) +
  geom_point(aes(x = date, y = value_gdp)) +
  theme_minimal() + xlab("") + ylab("Déficit public (% du PIB)") +
  scale_x_date(breaks = seq(1940, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 500, 1),
                labels = percent_format(accuracy = 1)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank()) +
  geom_text_repel(aes(x = date, y = value_gdp, label = value_gdp |> percent(0.1)),
                  fontface ="plain", size = 3)

2000-

Code
T_7301 |>
  year_to_date2() |>
  filter(code %in% c("B9"),
         date >= as.Date("2000-01-01")) |>
  left_join(gdp, by = "date") |>
  transmute(date, value_gdp = value / gdp) |>
  
  
  ggplot() + geom_line(aes(x = date, y = value_gdp)) +
  geom_point(aes(x = date, y = value_gdp)) +
  theme_minimal() + xlab("") + ylab("Déficit public (% du PIB)") +
  scale_x_date(breaks = seq(1940, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 500, 1),
                labels = percent_format(accuracy = 1)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank()) +
  geom_text_repel(aes(x = date, y = value_gdp, label = value_gdp |> percent(0.1)),
                  fontface ="plain", size = 3)

2007-

Code
T_7301 |>
  year_to_date2() |>
  filter(code %in% c("B9"),
         date >= as.Date("2007-01-01")) |>
  left_join(gdp, by = "date") |>
  mutate(value_gdp = value / gdp) |>
  
  ggplot() + geom_line(aes(x = date, y = value_gdp)) +
  geom_point(aes(x = date, y = value_gdp)) +
  theme_minimal() + xlab("") + ylab("Déficit public (% du PIB)") +
  scale_x_date(breaks = seq(1940, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 500, 1),
                labels = percent_format(accuracy = 1)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank()) +
  geom_text_repel(aes(x = date, y = value_gdp, label = value_gdp |> percent(0.1)),
                  fontface ="plain", size = 3)

Milliards

Tous

Code
T_7301 |>
  filter(code %in% c("B9")) |>
  year_to_date2() |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = value)) +
  scale_x_date(breaks = seq(1945, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-900, 900, 20),
                     labels = scales::dollar_format(pre = "", su = " Md€"))

2000-

Initial
Code
T_7301 |>
  year_to_date2() |>
  filter(code %in% c("B9"),
         date >= as.Date("2000-01-01")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = value)) +
  scale_x_date(breaks = seq(2000, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-900, 900, 20),
                     labels = scales::dollar_format(pre = "", su = " Md€")) +
  geom_text_repel(aes(x = date, y = value, label = value |> round(1) |> paste0("Md€")),
                  fontface ="plain", size = 3)

Mds
Code
T_7301 |>
  year_to_date2() |>
  filter(code %in% c("B9"),
         date >= as.Date("2000-01-01")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = value)) +
  scale_x_date(breaks = seq(2000, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-900, 900, 20),
                     labels = scales::dollar_format(pre = "", su = " Md€")) +
  geom_text_repel(aes(x = date, y = value, label = value |> round(1) |> paste0("Md€")),
                  fontface ="plain", size = 3)