Taux d’intérêt - France

Data - BDF

Info

source dataset .html .RData

bdf

MIR1

2024-10-16 2024-10-16

Data on interest rates

source dataset .html .RData

bdf

FM

2024-07-26 2024-06-18

bdf

MIR

2024-07-26 2024-07-01

bdf

MIR1

2024-10-16 2024-10-16

bis

CBPOL_D

2024-09-13 2024-05-10

bis

CBPOL_M

2024-08-09 2024-04-19

ecb

FM

2024-10-08 2024-10-08

ecb

MIR

2024-06-19 2024-10-08

eurostat

ei_mfir_m

2024-10-09 2024-10-08

eurostat

irt_lt_mcby_d

2024-10-09 2024-08-28

eurostat

irt_st_m

2024-10-09 2024-10-08

fred

r

2024-09-18 2024-09-18

oecd

MEI

2024-04-16 2024-06-30

oecd

MEI_FIN

2024-09-15 2024-05-21

wdi

FR.INR.RINR

2024-08-28 2024-09-18

Données sur l’immobilier

source dataset .html .RData

acpr

as151

2024-06-19 2024-04-05

bdf

BSI1

2024-07-26 2024-06-14

bdf

CPP

2024-07-26 2024-07-01

bdf

FM

2024-07-26 2024-06-18

bdf

immobilier

2024-07-26 2024-06-18

bdf

MIR

2024-07-26 2024-07-01

bdf

MIR1

2024-10-16 2024-10-16

bdf

RPP

2024-07-26 2024-07-01

cgedd

nombre-vente-maison-appartement-ancien

2024-09-26 2024-09-26

insee

CONSTRUCTION-LOGEMENTS

2024-10-09 2024-10-08

insee

ENQ-CONJ-ART-BAT

2024-10-09 2024-10-08

insee

ENQ-CONJ-IND-BAT

2024-10-09 2024-10-08

insee

ENQ-CONJ-PROMO-IMMO

2024-10-09 2024-10-08

insee

ENQ-CONJ-TP

2024-10-09 2024-10-08

insee

ILC-ILAT-ICC

2024-10-09 2024-10-08

insee

INDICES_LOYERS

2024-10-09 2024-10-08

insee

IPLA-IPLNA-2015

2024-10-09 2024-10-09

insee

IRL

2024-10-09 2024-10-09

insee

PARC-LOGEMENTS

2024-10-09 2023-12-03

insee

SERIES_LOYERS

2024-10-09 2024-10-09

insee

t_dpe_val

2024-10-09 2024-09-02

notaires

arrdt

2024-06-30 2024-09-09

notaires

dep

2024-06-30 2024-09-08

Data on housing

source dataset .html .RData

bdf

RPP

2024-07-26 2024-07-01

bis

LONG_PP

2024-08-09 2024-05-10

bis

SELECTED_PP

2024-08-09 2024-05-10

ecb

RPP

2024-10-08 2024-10-08

eurostat

ei_hppi_q

2024-10-09 2024-10-08

eurostat

hbs_str_t223

2024-10-09 2024-10-08

eurostat

prc_hicp_midx

2024-10-09 2024-10-08

eurostat

prc_hpi_q

2024-10-09 2024-10-09

fred

housing

2024-09-18 2024-09-18

insee

IPLA-IPLNA-2015

2024-10-09 2024-10-09

oecd

housing

2024-09-15 2020-01-18

oecd

SNA_TABLE5

2024-09-11 2023-10-19

LAST_COMPILE

LAST_COMPILE
2024-10-16

Last

date Nobs
2024-12-31 19
2024-10-31 5

BS_COUNT_SECTOR

Code
MIR1 %>%
  left_join(MIR1_var, by = "variable") %>%
  left_join(BS_COUNT_SECTOR, by = "BS_COUNT_SECTOR") %>%
  group_by(BS_COUNT_SECTOR, Bs_count_sector) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
BS_COUNT_SECTOR Bs_count_sector Nobs
2240U6 SNF résidentes 7094
2250 Ménages et ISBLSM (S14 et S15) 6866
2250U6 Ménages et ISBLSM résidents 6818
2240 Sociétés non financières (S11) 4553
2230U6 Ménages et SNF résidents 3949
2254FR Particuliers (S14) 3928
2313FR SNF + EI (2240+2253) 3088
2254U6 Particuliers résidents 2882
2300U6 non IFM hors administration centrale résidents 1300
0000U6 Secteur de contrepartie non précisée (résidents) 1040
2312FR APU + ISBLSM (2100+2252) 994
2300 Administrations publiques hors administrations centrales et secteur privé hors IFMs 520
2251 Ménages 342
2253 Entrepreneurs individuels 187
2254P NA 174
MIC_U6 Micro-entreprises résidentes 138
2254PM NA 104
2240GE NA 96
224ETI NA 96
224PME NA 96

FREQ

Code
MIR1 %>%
  left_join(MIR1_var, by = "variable") %>%
  left_join(FREQ, by = "FREQ") %>%
  group_by(FREQ, Freq) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
FREQ Freq Nobs
M Mensuel 33037
Q Trimestriel 11228

BS_ITEM

Code
MIR1 %>%
  left_join(MIR1_var, by = "variable") %>%
  left_join(BS_ITEM, by = "BS_ITEM") %>%
  group_by(BS_ITEM, Bs_item) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

MATURITY_ORIG

Code
MIR1 %>%
  left_join(MIR1_var, by = "variable") %>%
  left_join(MATURITY_ORIG, by = "MATURITY_ORIG") %>%
  group_by(MATURITY_ORIG, Maturity_orig) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

DATA_TYPE_MIR

Code
MIR1 %>%
  left_join(MIR1_var, by = "variable") %>%
  left_join(DATA_TYPE_MIR, by = "DATA_TYPE_MIR") %>%
  group_by(DATA_TYPE_MIR, Data_type_mir) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
DATA_TYPE_MIR Data_type_mir Nobs
R Taux annuel 19211
B Transactions en volume (encours ou crédits nouveaux) 9116
C Coût du crédit 2830
Y Flux mensuels cumulés sur un an 2600
6 Taux cvs 2080
5 Flux mensuel cvs 1820
U Taux d'usure 1597
W Part dans les crédits totaux 1303
F Frais 1220
PNL Part en nombre de lignes 756
D Durée moyenne 500
4 Part dans les flux 270
T Taux théorique hors plancher 260
PTF Part taux fixe 162
K1 Premier quartile 108
K3 Troisième quartile 108
L Médiane 108
P5 Cinquième percentile 108
P95 Quatre vingt quinzième percentile 108

REF_AREA

Code
MIR1 %>%
  left_join(MIR1_var, by = "variable") %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  group_by(REF_AREA, Ref_area) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
REF_AREA Ref_area Nobs
FR France 43045
DE Allemagne 244
ES Espagne 244
GB Royaume-Uni 244
IT Italie 244
U2 Zone Euro (composition évolutive) 244

Taux de rémunération

Nobs

Code
MIR1 %>%
  left_join(MIR1_var, by = "variable") %>%
  filter(grepl("Taux moyen de rémunération annuel", Variable)) %>%
  group_by(variable, Variable) %>%
  summarise(Nobs = n()) %>%
  print_table_conditional()
variable Variable Nobs
MIR1.M.FR.B.L20.A.C.A.2300U6.EUR.O Taux moyen de rémunération annuel des dépôts bancaires 260
MIR1.M.FR.B.L20.A.R.A.2300U6.EUR.O Taux moyen de rémunération annuel des dépôts bancaires 260
MIR1.M.FR.B.L20.L.C.A.2300U6.EUR.O Taux moyen de rémunération annuel des dépôts, moins de 2 ans 260
MIR1.M.FR.B.L20.L.R.A.2300U6.EUR.O Taux moyen de rémunération annuel des dépôts, moins de 2 ans 260

Taux de rémunération des dépôts + immobilier

Code
MIR1 %>%
  filter(grepl("MIR1.M.FR.B.L20.A.C.A.2300U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L20.L.C.A.2300U6.EUR.O", variable)) %>%
  na.omit %>%
  left_join(MIR1_var, by = "variable") %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.55, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .1),
                labels = percent_format(accuracy = .1))

Taux

Nobs

Code
MIR1 %>%
  left_join(MIR1_var, by = "variable") %>%
  filter(FREQ == "M",
         REF_AREA == "FR",
         BS_ITEM == "A22") %>%
  group_by(variable, Variable) %>%
  summarise(Nobs = n()) %>%
  print_table_conditional()
variable Variable Nobs
MIR1.M.FR.B.A22.A.5.A.2250U6.EUR.N Crédits nouveaux à l'habitat des ménages, flux CVS 260
MIR1.M.FR.B.A22.A.5.A.2254U6.EUR.N Crédits nouveaux à l'habitat des particuliers, flux CVS 260
MIR1.M.FR.B.A22.A.R.A.2250U6.EUR.N Crédits nouveaux à l'habitat des ménages, taux d'intérêt annuel 260
MIR1.M.FR.B.A22.A.R.A.2254U6.EUR.N Crédits nouveaux à l'habitat des particuliers, taux d'intérêt annuel 309
MIR1.M.FR.B.A22.A.Y.A.2250U6.EUR.N Crédits nouveaux à l'habitat des ménages résidents, flux mensuels cumulés sur un an 260
MIR1.M.FR.B.A22.F.R.A.2250U6.EUR.N Crédits nouveaux à l'habitat des ménages, jusqu'à un an, taux d'intérêt annuel 260
MIR1.M.FR.B.A22.F.R.A.2254U6.EUR.N Crédits nouveaux à l'habitat des particuliers, jusqu'à un an, taux d'intérêt annuel 260
MIR1.M.FR.B.A22.F.Y.A.2250U6.EUR.N Crédits nouveaux à l'habitat des ménages résidents, jusqu'à un an, flux mensuels cumulés sur un an 260
MIR1.M.FR.B.A22.K.R.A.2250U6.EUR.N Crédits nouveaux à l'habitat des ménages, à plus d'un an, taux d'intérêt annuel 260
MIR1.M.FR.B.A22.K.R.A.2254U6.EUR.N Crédits nouveaux à l'habitat des particuliers, à plus d'un an, taux d'intérêt annuel 260
MIR1.M.FR.B.A22.K.Y.A.2250U6.EUR.N Crédits nouveaux à l'habitat des ménages résidents, à plus d'un an, flux mensuels cumulés sur un an 260

Livrets réglementés

-Info. html

All

Code
MIR1 %>%
  filter(grepl("MIR1.M.FR.B.L23FRLA.D.R.A.2230U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L23RJ.A.R.A.2300.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L22FRSP.H.R.A.2250U6.EUR.N", variable)) %>%
  left_join(MIR1_var, by = "variable") %>%
  arrange(desc(date)) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.1),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

Taux SNF

Table SNF

Code
MIR1 %>%
  left_join(MIR1_var, by = "variable") %>%
  filter(BS_COUNT_SECTOR == "2240U6") %>%
  group_by(Variable) %>%
  summarise(Nobs = n(),
            date = last(date),
            value = last(value)) %>%
  print_table_conditional

Catégories montants

Tous

Code
MIR1 %>%
  filter(grepl("MIR1.M.FR.B.A20.A.R.0.2240U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A20.A.R.1.2240U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A20.A.R.A.2240U6.EUR.N", variable)) %>%
  left_join(MIR1_var, by = "variable") %>%
  left_join(AMOUNT_CAT, by = "AMOUNT_CAT") %>%
  arrange(desc(date)) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Amount_cat)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.85),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

2010-

Code
MIR1 %>%
  filter(grepl("MIR1.M.FR.B.A20.A.R.0.2240U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A20.A.R.1.2240U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A20.A.R.A.2240U6.EUR.N", variable)) %>%
  left_join(MIR1_var, by = "variable") %>%
  left_join(AMOUNT_CAT, by = "AMOUNT_CAT") %>%
  arrange(desc(date)) %>%
  filter(date >= as.Date("2010-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Amount_cat)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.85),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 0.5),
                labels = percent_format(accuracy = .1))

Catégories montants

Code
MIR1 %>%
  filter(grepl("MIR1.M.FR.B.A20.A.R.0.2240U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A20.A.R.1.2240U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A20.A.R.A.2240U6.EUR.N", variable)) %>%
  left_join(MIR1_var, by = "variable") %>%
  left_join(AMOUNT_CAT, by = "AMOUNT_CAT") %>%
  arrange(desc(date)) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Amount_cat)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.85),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

Livret A

Taux crédits habitat

Tous

Code
MIR1 %>%
  left_join(MIR1_var, by = "variable") %>%
  filter(FREQ == "M",
         REF_AREA == "FR",
         BS_REP_SECTOR == "B",
         BS_ITEM == "A2C",
         DATA_TYPE_MIR == "R",
         AMOUNT_CAT == "A",
         BS_COUNT_SECTOR == "2250U6",
         CURRENCY_TRANS == "EUR",
         IR_BUS_COV == "N") %>%
  left_join(MATURITY_ORIG, by = "MATURITY_ORIG") %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Maturity_orig)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.15),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

Tous

Code
MIR1 %>%
  filter(grepl("MIR1.M.FR.B.A22.K.R.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A22.F.R.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A22.A.R.A.2254U6.EUR.N", variable)) %>%
  left_join(MIR1_var, by = "variable") %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.15),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

2016-

Code
MIR1 %>%
  filter(grepl("MIR1.M.FR.B.A22.K.R.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A22.F.R.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A22.A.R.A.2254U6.EUR.N", variable)) %>%
  left_join(MIR1_var, by = "variable") %>%
  filter(date >= as.Date("2016-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.85),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .1),
                labels = percent_format(accuracy = .1))

2018-

Code
MIR1 %>%
  filter(grepl("MIR1.M.FR.B.A22.K.R.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A22.F.R.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A22.A.R.A.2254U6.EUR.N", variable)) %>%
  left_join(MIR1_var, by = "variable") %>%
  filter(date >= as.Date("2018-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.85),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .1),
                labels = percent_format(accuracy = .1))

Taux de rémunération des dépôts + immobilier

Tous

Code
MIR1 %>%
  filter(grepl("MIR1.M.FR.A.N30.A.R.A.2230U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.A22.A.R.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.L21.A.R.A.2230U6.EUR.O", variable)) %>%
  left_join(MIR1_var, by = "variable") %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.55, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1),
                limits = c(0, 0.07))

Part des renégociations

Code
MIR1 %>%
  filter(grepl("MIR1.M.FR.B.A22PR.A.W.A.2254FR.EUR.N", variable)) %>%
  left_join(MIR1_var, by = "variable") %>%
  na.omit %>%
  ggplot + geom_line(aes(x = date, y = value/100)) +
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.15),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Part des renégo dans le total des crédits à l'habitat (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
                labels = percent_format(accuracy = 1))

Volumes de crédit

Crédits à la consommation

Code
MIR1 %>%
  filter(grepl("MIR1.M.FR.B.A2Z.A.R.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A2B.A.R.A.2254U6.EUR.N", variable)) %>%
  left_join(MIR1_var, by = "variable") %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.5, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1),
                limits = c(0.03, 0.15))

Crédits nouveaux à l’habitat

Tous

Code
MIR1 %>%
  filter(grepl("MIR1.M.FR.B.A22HR.A.5.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A22.A.5.A.2254U6.EUR.N", variable)) %>%
  left_join(MIR1_var, by = "variable") %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.5, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("") +
  scale_y_continuous(breaks = seq(0, 100, 2))

2015-

Code
MIR1 %>%
  filter(grepl("MIR1.M.FR.B.A22HR.A.5.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A22.A.5.A.2254U6.EUR.N", variable)) %>%
  left_join(MIR1_var, by = "variable") %>%
  filter(date >= as.Date("2015-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.5, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("") +
  scale_y_continuous(breaks = seq(0, 100, 2))

Taux d’usure

2017-

Code
MIR1 %>%
  filter(grepl("MIR1.Q.FR.R.A22FRF.Q.U.A.2254FR.EUR.N", variable) |
           grepl("MIR1.Q.FR.R.A22FRF.R.U.A.2254FR.EUR.N", variable) |
           grepl("MIR1.Q.FR.R.A22FRF.S.U.A.2254FR.EUR.N", variable)) %>%
  left_join(MIR1_var, by = "variable") %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.5, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 0.1),
                labels = percent_format(accuracy = .1))