Last data update: 05 nov. 2026, 06:35
Last compile: 05 nov. 2026, 06:50
Instantané quotidien de https://www.investing.com/rates-bonds/world-government-bonds : taux souverain « live » par pays et par maturité. symbol (ex. France 10Y) correspond au symbol de bonds.parquet (historique).
maturity_years <- function(m) {
n <- readr::parse_number(m)
dplyr::case_when(m == "Overnight" ~ 1 / 365,
grepl("W$", m) ~ n / 52,
grepl("M$", m) ~ n / 12,
grepl("Y$", m) ~ n,
TRUE ~ NA_real_)
}
last_day <- max(sovereign_yields$scraped_date)sovereign_yields |>
filter(scraped_date == last_day) |>
transmute(Pays = country, Maturité = maturity, `Taux` = yield,
`Var.` = chg, `Var. %` = chg_pct, Heure = quote_time) |>
arrange(Pays, maturity_years(Maturité)) |>
print_table_conditional()Source : investing.com, instantané du 05 novembre 2026.
sy <- read_parquet("sovereign_yields.parquet")
maturity_years <- function(m) {
n <- readr::parse_number(m)
dplyr::case_when(m == "Overnight" ~ 1 / 365, grepl("W$", m) ~ n / 52,
grepl("M$", m) ~ n / 12, grepl("Y$", m) ~ n, TRUE ~ NA_real_)
}
pays <- c("France", "Germany", "Italy", "Spain", "U.S.", "U.K.")
sy |>
filter(scraped_date == max(scraped_date), country %in% pays) |>
mutate(t = maturity_years(maturity)) |>
filter(!is.na(t), t <= 30) |>
ggplot(aes(x = t, y = yield, color = country)) +
geom_line() + geom_point(size = 1) +
theme_minimal() + xlab("Maturité (années)") + ylab("Taux (%)") +
scale_x_log10(breaks = c(0.08, 0.25, 0.5, 1, 2, 5, 10, 20, 30)) +
scale_color_flag(pays) +
theme(legend.position =c(0.3, 0.9),
legend.title = element_blank(),
legend.direction = "horizontal")
pays_fr <- c("France" = "France", "Germany" = "Allemagne", "Italy" = "Italie",
"Spain" = "Espagne", "U.S." = "États-Unis", "U.K." = "Royaume-Uni")
d <- sy |>
filter(scraped_date == max(scraped_date), country %in% names(pays_fr)) |>
mutate(t = maturity_years(maturity),
country = factor(pays_fr[country], levels = pays_fr)) |>
filter(!is.na(t), t <= 30)
d |>
ggplot(aes(x = t, y = yield, color = country)) +
geom_line() + geom_point(size = 1) +
ggrepel::geom_text_repel(data = d |> slice_max(t, by = country),
aes(label = country), nudge_x = 0.2, hjust = 0,
direction = "y", segment.size = 0.3, min.segment.length = 0,
arrow = arrow(length = unit(0.015, "npc"), ends = "last"),
size = 3.5, show.legend = FALSE) +
theme_minimal() + xlab("Maturité") + ylab("Taux souverain") +
scale_x_log10(breaks = c(0.08, 0.25, 0.5, 1, 2, 5, 10, 20, 30),
labels = c("1 mois", "3 mois", "6 mois", "1 an", "2 ans", "5 ans",
"10 ans", "20 ans", "30 ans"),
expand = expansion(mult = c(0.02, 0.14))) +
scale_y_continuous(breaks = seq(-10, 30, .5),
labels = scales::label_number(accuracy = .1, decimal.mark = ",", suffix = " %")) +
scale_color_flag(pays_fr) +
theme(legend.position = "none",
axis.text.x = element_text(angle = 45, hjust = 1))
maturity_years <- function(m) {
n <- readr::parse_number(m)
dplyr::case_when(m == "Overnight" ~ 1 / 365, grepl("W$", m) ~ n / 52,
grepl("M$", m) ~ n / 12, grepl("Y$", m) ~ n, TRUE ~ NA_real_)
}
pays <- c("France", "Portugal", "Italy", "Spain", "Greece")
sy |>
filter(scraped_date == max(scraped_date), country %in% pays) |>
mutate(t = maturity_years(maturity)) |>
filter(!is.na(t), t <= 30) |>
ggplot(aes(x = t, y = yield, color = country)) +
geom_line() + geom_point(size = 1) +
theme_minimal() + xlab("Maturité (années)") + ylab("Taux (%)") +
scale_x_log10(breaks = c(0.08, 0.25, 0.5, 1, 2, 5, 10, 20, 30)) +
scale_color_flag(pays) +
theme(legend.position =c(0.35, 0.9),
legend.title = element_blank(),
legend.direction = "horizontal")
sel <- c("France", "Germany", "Italy", "Spain", "U.S.", "U.K.")
sovereign_yields |>
filter(scraped_date == last_day, country %in% sel) |>
mutate(t = maturity_years(maturity)) |>
filter(!is.na(t), t <= 30) |>
ggplot(aes(x = t, y = yield, color = country)) +
geom_line() + geom_point(size = 1) +
theme_minimal() + xlab("Maturité (années)") + ylab("Taux (%)") +
scale_x_log10(breaks = c(0.25, 0.5, 1, 2, 5, 10, 20, 30)) +
scale_color_viridis_d() +
theme(legend.position = "bottom", legend.title = element_blank())
sel <- c("France 10Y", "Germany 10Y", "Italy 10Y", "Spain 10Y",
"U.S. 10Y", "U.K. 10Y", "Japan 10Y")
d <- sovereign_yields |> filter(symbol %in% sel)
if (n_distinct(d$scraped_date) < 2) {
knitr::asis_output(paste0(
"_Série trop courte (", n_distinct(d$scraped_date),
" relevé) — voir `bonds.parquet` pour l'historique complet._"))
} else {
d |>
ggplot() + geom_line(aes(x = scraped_date, y = yield, color = symbol)) +
theme_minimal() + xlab("") + ylab("Taux 10 ans (%)") +
scale_color_viridis_d() +
theme(legend.position = "bottom", legend.title = element_blank())
}