Spreads souverains - spreads

Data - Investing

Niveau des spreads

1er septembre 2026-

Code
sel <- c("France", "Italie", "Espagne", "Grèce", "Portugal", "Belgique")
d <- spreads |> filter(country %in% sel)

if (n_distinct(d$scraped_date) < 2) {
  knitr::asis_output(paste0(
    "_Série trop courte (", n_distinct(d$scraped_date),
    " relevé) — le graphique se remplira au fil des instantanés quotidiens._"))
} else {
  d    <- add_flag_color(d, "country_en")
  span <- as.numeric(diff(range(d$scraped_date)))
  gap  <- 0.07 * diff(range(d$spread_bund, na.rm = TRUE))

  ends <- d |> group_by(country) |> slice_max(scraped_date, n = 1) |>
    ungroup() |> arrange(spread_bund)
  y <- ends$spread_bund
  for (i in seq_along(y)[-1]) if (y[i] - y[i - 1] < gap) y[i] <- y[i - 1] + gap
  ends$y_lab <- y - mean(y - ends$spread_bund)

  ggplot(d, aes(scraped_date, spread_bund)) +
    geom_line(aes(color = color, group = country), linewidth = 0.7) +
    ggimage::geom_image(
      data = ends, inherit.aes = FALSE, na.rm = TRUE,
      aes(x = scraped_date + span * 0.03 + 0.4, y = y_lab, image = flag_img),
      size = 0.05, asp = 1.5) +
    geom_text(
      data = ends,
      aes(x = scraped_date + span * 0.07 + 0.9, y = y_lab, label = country,
          color = color),
      hjust = 0, size = 3) +
    scale_color_identity() +
    scale_y_continuous(breaks = seq(0, 200, 10)) +
    scale_x_date(expand = expansion(mult = c(0.02, 0.24)),
                 breaks = seq.Date(Sys.Date() - days(20), Sys.Date()),
                 labels = date_format("%d %b %Y")) +
    theme_minimal() + xlab("") + ylab("Spread vs Bund 10 ans (pb)") +
    theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))
}

Principaux pays

Code
euro <- c("France", "Italie", "Espagne", "Pays-Bas", "Grèce")

spreads |>
  filter(scraped_date == last_day, country %in% euro) |>
  add_flag_color("country_en") |>
  bar_flags(flag_size = 0.07)

Tous les pays

Code
euro <- c("France", "Italie", "Espagne", "Portugal", "Belgique", "Pays-Bas",
          "Grèce", "Autriche", "Irlande", "Finlande", "Slovaquie", "Slovénie",
          "Lituanie", "Chypre", "Croatie", "Malte")

spreads |>
  filter(scraped_date == last_day, country %in% euro) |>
  add_flag_color("country_en") |>
  bar_flags()

Écart de taux par pays (monde)

Code
spreads |>
  filter(scraped_date == last_day, !is.na(spread_bund)) |>
  add_flag_color("country_en") |>
  bar_flags(flag_size = 0.055, asp = 0.30, txt_size = 2, label_size = 7)

Dernier instantané

Code
tbl <- spreads |>
  filter(scraped_date == last_day) |>
  mutate(Pays = ifelse(
    is.na(slug), country,
    sprintf('<span style="white-space:nowrap"><img src="../../icon/flag/round/%s.png" width="17" style="vertical-align:-3px;margin-right:6px">%s</span>',
            slug, country))) |>
  transmute(Pays,
            `Taux 10 ans` = yield,
            `Var.` = chg,
            `Vs. Bund` = spread_bund,
            `Vs. T-Note` = spread_tnote,
            Heure = quote_time) |>
  arrange(`Vs. Bund`)

if (knitr::is_html_output()) {
  DT::datatable(tbl, filter = "top", rownames = FALSE, escape = FALSE,
                options = list(columnDefs = list(list(width = "150px", targets = 0))))
} else {
  tbl |> mutate(Pays = gsub("<[^>]*>", "", Pays))
}

Source : investing.com, instantané du 24 septembre 2026.