8.101 - Comptes financiers - Économie nationale (S1) - T_8101

Données - INSEE

Structure

Encours d’actifs financiers par instrument

Actifs financiers détenus par l’ensemble des agents résidents, par instrument. Les actions et parts de fonds représentent la plus grosse part, devant le numéraire et les dépôts.

Code
`T_8101` |>
  filter(sheet == enc_a, code %in% instr) |>
  distinct(code, year, .keep_all = TRUE) |>
  arrange(desc(code)) |> mutate(label = factor(str_trunc(label, 40), levels = unique(str_trunc(label, 40)))) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Encours (Mds €)") +
  geom_area(aes(x = year, y = value, fill = label)) +
  scale_x_continuous(breaks = seq(1995, 2030, 5)) +
  scale_fill_viridis_d() +
  theme(legend.title = element_blank(), legend.position = "bottom",
        legend.text = element_text(size = 7)) +
  guides(fill = guide_legend(ncol = 2))

En années de PIB

Code
`T_8101` |>
  filter(sheet == enc_a, code == "F") |>
  distinct(year, .keep_all = TRUE) |>
  left_join(pib, by = "year") |>
  ggplot() + theme_minimal() + xlab("") + ylab("Total des actifs financiers (années de PIB)") +
  geom_line(aes(x = year, y = value / pib)) +
  scale_x_continuous(breaks = seq(1995, 2030, 5))

Patrimoine financier net (actifs − passifs)

Code
bind_rows(
  `T_8101` |> filter(sheet == enc_a, code == "F") |> distinct(year, .keep_all = TRUE) |> transmute(year, actifs = value),
) |>
  left_join(`T_8101` |> filter(sheet == enc_p, code == "F") |> distinct(year, .keep_all = TRUE) |> transmute(year, passifs = value), by = "year") |>
  left_join(pib, by = "year") |>
  ggplot() + theme_minimal() + xlab("") + ylab("Patrimoine financier net (% du PIB)") +
  geom_hline(yintercept = 0, color = "grey60") +
  geom_col(aes(x = year, y = (actifs - passifs) / pib), fill = "#2b6cb0") +
  scale_x_continuous(breaks = seq(1995, 2030, 5)) +
  scale_y_continuous(labels = percent_format(accuracy = 1))

Flux d’acquisition nette d’actifs (2025)

Code
`T_8101` |>
  filter(sheet == flx_a, code %in% instr, year == last_y) |>
  distinct(code, .keep_all = TRUE) |>
  mutate(label = reorder(str_trunc(label, 45), value)) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Flux net (Mds €)") +
  geom_hline(yintercept = 0, color = "grey60") +
  geom_col(aes(x = label, y = value), fill = "#2b6cb0") +
  coord_flip()

Table des encours (2025)

Code
`T_8101` |>
  filter(sheet %in% c(enc_a, enc_p), year == last_y) |>
  transmute(Feuille = sheet, Ligne = line, Instrument = label, Code = code, `Mds €` = round(value, 1)) |>
  print_table_conditional()