8.200 - Comptes de patrimoine annuels 2021 - T_8200_2021

Données - INSEE

Compte de patrimoine par secteur institutionnel, fin 2021. Séries longues : 8.201 (économie nationale), 8.210 (ménages).

Structure

Bloc Nobs
Actif 360
Passif 108

Valeur nette par secteur (2021)

Actifs (non financiers + financiers) moins passifs financiers. Les ménages détiennent l’essentiel du patrimoine net ; l’État a une valeur nette négative.

Code
P |>
  filter(code == "B90", sector %in% c(S, "dont État")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Valeur nette (Mds €)") +
  geom_hline(yintercept = 0, color = "grey60") +
  geom_col(aes(x = reorder(sfmt(sector), value), y = value), fill = "#2b6cb0") +
  coord_flip()

Structure du bilan par secteur (2021)

Code
P |>
  filter(sector %in% S,
         (code == "N" & bloc == "Actif") | (code == "F" & bloc == "Actif") |
         (code == "F" & bloc == "Passif")) |>
  mutate(poste = case_when(code == "N" ~ "Actifs non financiers",
                           bloc == "Actif" ~ "Actifs financiers",
                           TRUE ~ "Passifs financiers"),
         value = ifelse(poste == "Passifs financiers", -value, value)) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Mds €") +
  geom_hline(yintercept = 0, color = "grey60") +
  geom_col(aes(x = sfmt(sector), y = value, fill = poste)) +
  geom_point(data = filter(P, code == "B90", sector %in% S),
             aes(x = sfmt(sector), y = value), size = 1.6) +
  scale_fill_manual(values = viridis(3)) + coord_flip() +
  theme(legend.title = element_blank(), legend.position = "bottom") +
  labs(caption = "Points = valeur nette")

Répartition des actifs par instrument et par secteur (2021)

Code
P |>
  filter(bloc == "Actif", sector %in% S,
         code %in% c("N11", "N12", "N13", "N2", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8")) |>
  ggplot(aes(sfmt(sector), str_trunc(label, 36), fill = value)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(value)), size = 2.4) +
  scale_fill_viridis_c(trans = "sqrt") +
  theme_minimal() + xlab("") + ylab("") +
  theme(axis.text.y = element_text(size = 7), legend.position = "none")

Table (2021)

Code
P |>
  transmute(Classe = str_trunc(label, 44), Code = code, Bloc = bloc,
            Secteur = sfmt(sector), value = round(value, 1)) %>%
  {if (is_html_output()) datatable(., filter = "top", rownames = F) else head(., 80)}