Prix moyens de vente de détail - IPC-PM-2015

Données - INSEE

Last observation: juil. 2026 (N = 62) · 2025 (N = 63)

First observation: 1992 (N = 60) · janv. 1992 (N = 60)

Last data update: 05 sept. 2026, 00:40

Last compile: 05 sept. 2026, 02:43

Structure

Prix Baguette

Tous

Indice

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("1223", "1227"),
         FREQ == "M") |>
  
  month_to_date() |>
  ggplot() + theme_minimal() + xlab("") + ylab("Prix en €") +
  geom_line(aes(x = date, y = OBS_VALUE/4, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 3, 0.1),
                     labels = dollar_format(accuracy = .1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.7, 0.15),
        legend.title = element_blank())

Glissement Annuel

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("1223", "1227"),
         FREQ == "M") |>
  
  month_to_date() |>
  group_by(PRIX_CONSO) |>
  arrange(date) |>
  mutate(inflation = OBS_VALUE/lag(OBS_VALUE,12)-1) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Glissement annuel") +
  geom_line(aes(x = date, y = inflation, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 30, 1),
                     labels = percent_format(acc = 1)) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

Immobilier, Pain Baguette

Code
t_5203_extract <- t_5203 |>
  year_to_date2() |>
  filter(sector %in% c("A10.LZ", "TOTAL")) |>
  filter(date >= as.Date("1992-01-01")) |>
  group_by(sector) |>
  mutate(value = 100*value/value[date == as.Date("1992-01-01")]) |>
  select(date, Variable = Sector, value)


data_extract <- `IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("1223"),
         FREQ == "M") |>
  month_to_date() |>
  mutate(Variable = "Prix de la baguette") |>
  select(date, Variable, value = OBS_VALUE) |>
  mutate(value = 100*value/value[date == as.Date("1992-01-01")])


croissant <- `IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("1241"),
         FREQ == "M") |>
  month_to_date() |>
  mutate(Variable = "Prix du croissant") |>
  select(date, Variable, value = OBS_VALUE) |>
  mutate(value = 100*value/value[date == as.Date("1992-01-01")])

t_5203_extract |>
  bind_rows(data_extract) |>
  bind_rows(croissant) |>
  ggplot() + theme_minimal() + ylab("") + xlab("") +
  geom_line(aes(x = date, y = value, color = Variable)) +
  theme(legend.title = element_blank(),
        legend.position = c(0.2, 0.8)) +
  scale_x_date(breaks = seq(1950, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  
  scale_y_log10(breaks = seq(0, 200, 10))

Gaz butane comprimé

Valeur

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("1873"),
         FREQ == "M") |>
  mutate(OBS_VALUE = ifelse(PRIX_CONSO == "3790", OBS_VALUE/1000, OBS_VALUE)) |>
  
  month_to_date() |>
  mutate(Prix_conso = gsub("Non alimentaire : ", "", Prix_conso)) |>
  mutate(Prix_conso = gsub(": 1.000 litres \\(livré à domicile\\)", 
                           "\\(1 litre, livré à domicile\\)", Prix_conso)) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Gaz butane comprimé") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1992, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 40, 2),
                     labels = dollar_format(accuracy = 1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

Base 100

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("1873", "3863", "3860"),
         FREQ == "M") |>
  mutate(OBS_VALUE = ifelse(PRIX_CONSO == "3790", OBS_VALUE/1000, OBS_VALUE)) |>
  
  month_to_date() |>
  mutate(Prix_conso = gsub("Non alimentaire : ", "", Prix_conso)) |>
  mutate(Prix_conso = gsub(": 1.000 litres \\(livré à domicile\\)", 
                           "\\(1 litre, livré à domicile\\)", Prix_conso)) |>
  group_by(PRIX_CONSO) |>
  arrange(date) |>
  mutate(OBS_VALUE = 100*OBS_VALUE/OBS_VALUE[1]) |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1992, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(100, 850, 20)) +
  
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

Essence, Fioul, Gazole

Tous

Value - Linear

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("3860", "3790", "3863"),
         FREQ == "M") |>
  mutate(OBS_VALUE = ifelse(PRIX_CONSO == "3790", OBS_VALUE/1000, OBS_VALUE)) |>
  
  month_to_date() |>
  mutate(Prix_conso = gsub("Non alimentaire : ", "", Prix_conso)) |>
  mutate(Prix_conso = gsub(": 1.000 litres \\(livré à domicile\\)", 
                           "\\(1 litre, livré à domicile\\)", Prix_conso)) |>
  ggplot() + theme_minimal() + xlab("") + ylab("1 litre en €") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1992, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 3, 0.1),
                     labels = dollar_format(accuracy = .1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

Value - Log

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("3860", "3790", "3863"),
         FREQ == "M") |>
  mutate(OBS_VALUE = ifelse(PRIX_CONSO == "3790", OBS_VALUE/1000, OBS_VALUE)) |>
  
  month_to_date() |>
  mutate(Prix_conso = gsub("Non alimentaire : ", "", Prix_conso)) |>
  mutate(Prix_conso = gsub(": 1.000 litres \\(livré à domicile\\)", 
                           "\\(1 litre, livré à domicile\\)", Prix_conso)) |>
  ggplot() + theme_minimal() + xlab("") + ylab("1 litre en €") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1992, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 3, 0.1),
                     labels = dollar_format(accuracy = .1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank())

Indice

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("3860", "3790", "3863"),
         FREQ == "M") |>
  mutate(OBS_VALUE = ifelse(PRIX_CONSO == "3790", OBS_VALUE/1000, OBS_VALUE)) |>
  
  month_to_date() |>
  mutate(Prix_conso = gsub("Non alimentaire : ", "", Prix_conso)) |>
  mutate(Prix_conso = gsub(": 1.000 litres \\(livré à domicile\\)", 
                           "\\(1 litre, livré à domicile\\)", Prix_conso)) |>
  group_by(PRIX_CONSO) |>
  arrange(date) |>
  mutate(OBS_VALUE = 100*OBS_VALUE/OBS_VALUE[1]) |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1992, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(100, 850, 50)) +
  
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank())

1996-

Value

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("3860", "3790", "3863"),
         FREQ == "M") |>
  mutate(OBS_VALUE = ifelse(PRIX_CONSO == "3790", OBS_VALUE/1000, OBS_VALUE)) |>
  
  month_to_date() |>
  filter(date >= as.Date("1996-01-01")) |>
  mutate(Prix_conso = gsub("Non alimentaire : ", "", Prix_conso)) |>
  mutate(Prix_conso = gsub(": 1.000 litres \\(livré à domicile\\)", 
                           "\\(1 litre, livré à domicile\\)", Prix_conso)) |>
  ggplot() + theme_minimal() + xlab("") + ylab("1 litre en €") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 3, 0.1),
                     labels = dollar_format(accuracy = .1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank())

Indice

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("3860", "3790", "3863"),
         FREQ == "M") |>
  mutate(OBS_VALUE = ifelse(PRIX_CONSO == "3790", OBS_VALUE/1000, OBS_VALUE)) |>
  
  month_to_date() |>
  arrange(date) |>
  filter(date >= as.Date("1996-01-01")) |>
  group_by(PRIX_CONSO) |>
  mutate(OBS_VALUE = 100*OBS_VALUE/OBS_VALUE[1]) |>
  mutate(Prix_conso = gsub(": 1.000 litres \\(livré à domicile\\)", 
                           "\\(1 litre, livré à domicile\\)", Prix_conso)) |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(100, 850, 50)) +
  
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank())

2015-

Value

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("3860", "3790", "3863"),
         FREQ == "M") |>
  mutate(OBS_VALUE = ifelse(PRIX_CONSO == "3790", OBS_VALUE/1000, OBS_VALUE)) |>
  
  month_to_date() |>
  filter(date >= as.Date("2015-01-01")) |>
  mutate(Prix_conso = gsub("Non alimentaire : ", "", Prix_conso)) |>
  mutate(Prix_conso = gsub(": 1.000 litres \\(livré à domicile\\)", 
                           "\\(1 litre, livré à domicile\\)", Prix_conso)) |>
  ggplot() + theme_minimal() + xlab("") + ylab("1 litre en €") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 3, 0.1),
                     labels = dollar_format(accuracy = .1, prefix = "", su = " €")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

Indice

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("3860", "3790", "3863"),
         FREQ == "M") |>
  mutate(OBS_VALUE = ifelse(PRIX_CONSO == "3790", OBS_VALUE/1000, OBS_VALUE)) |>
  
  month_to_date() |>
  arrange(date) |>
  filter(date >= as.Date("2015-01-01")) |>
  group_by(PRIX_CONSO) |>
  mutate(OBS_VALUE = 100*OBS_VALUE/OBS_VALUE[1]) |>
  mutate(Prix_conso = gsub(": 1.000 litres \\(livré à domicile\\)", 
                           "\\(1 litre, livré à domicile\\)", Prix_conso)) |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(100, 850, 50)) +
  
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank())

Essence, Gazole

Tous

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("3860", "3861", "3863"),
         FREQ == "M") |>
  
  month_to_date() |>
  ggplot() + theme_minimal() + xlab("") + ylab("1 litre en €") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 3, 0.1),
                     labels = dollar_format(accuracy = .1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

1996-

Value

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("3860", "3861", "3863"),
         FREQ == "M") |>
  
  month_to_date() |>
  filter(date >= as.Date("1996-01-01")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("1 litre en €") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 3, 0.1),
                     labels = dollar_format(accuracy = .1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank())

Indice

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("3860", "3863"),
         FREQ == "M") |>
  
  month_to_date() |>
  arrange(date) |>
  filter(date >= as.Date("1996-01-01")) |>
  group_by(PRIX_CONSO) |>
  mutate(OBS_VALUE = 100*OBS_VALUE/OBS_VALUE[1]) |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(100, 850, 10)) +
  
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank())

2002-

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("3860", "3861", "3863"),
         FREQ == "M") |>
  
  month_to_date() |>
  filter(date >= as.Date("2002-01-01")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("1 litre en €") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 3, 0.1),
                     labels = dollar_format(accuracy = .1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank())

2015-

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("3860", "3861", "3863"),
         FREQ == "M") |>
  
  month_to_date() |>
  filter(date >= as.Date("2015-01-01")) |>
  arrange(desc(date)) |>
  select(date, OBS_VALUE, PRIX_CONSO, everything()) |>
  ggplot() + theme_minimal() + xlab("") + ylab("1 litre en €") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 3, 0.1),
                     labels = dollar_format(accuracy = .1, prefix = "", su = " €")) +
  scale_color_manual(values = c("blue", "red", "black")) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank())

Viandes, Boissons

Entrecôte de boeuf, Porc, Veau, Poulet

1992-

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("1188", "1244", "1264", "1334"),
         FREQ == "M") |>
  
  month_to_date() |>
  ggplot() + theme_minimal() + xlab("") + ylab("1 kg en €") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 100, 1),
                     labels = dollar_format(accuracy = 1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

1996-

Value

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("1188", "1244", "1264", "1334"),
         FREQ == "M") |>
  
  month_to_date() |>
  filter(date >= as.Date("1996-01-01")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("1 kg en €") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 100, 1),
                     labels = dollar_format(accuracy = 1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

100

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("1188", "1244", "1264", "1334"),
         FREQ == "M") |>
  
  month_to_date() |>
  arrange(date) |>
  filter(date >= as.Date("1996-01-01")) |>
  group_by(PRIX_CONSO) |>
  mutate(OBS_VALUE = 100*OBS_VALUE/OBS_VALUE[1]) |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(100, 850, 10)) +
  
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank())

Apéritifs anisés, Whisky

1992

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("1180", "1181"),
         FREQ == "M") |>
  
  month_to_date() |>
  ggplot() + theme_minimal() + xlab("") + ylab("en €") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 100, 1),
                     labels = dollar_format(accuracy = 1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

1996-

Value

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("1180", "1181"),
         FREQ == "M") |>
  
  month_to_date() |>
  filter(date >= as.Date("1996-01-01")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("1 kg en €") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 100, 1),
                     labels = dollar_format(accuracy = 1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

100

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("1180", "1181"),
         FREQ == "M") |>
  
  month_to_date() |>
  arrange(date) |>
  filter(date >= as.Date("1996-01-01")) |>
  group_by(PRIX_CONSO) |>
  mutate(OBS_VALUE = 100*OBS_VALUE/OBS_VALUE[1]) |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(100, 850, 10)) +
  
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank())

2017-

Value

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("1180", "1181"),
         FREQ == "M") |>
  
  month_to_date() |>
  filter(date >= as.Date("2017-01-01")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("1 kg en €") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 100, 1),
                     labels = dollar_format(accuracy = 1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

100

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("1180", "1181"),
         FREQ == "M") |>
  
  month_to_date() |>
  arrange(date) |>
  filter(date >= as.Date("2017-01-01")) |>
  group_by(PRIX_CONSO) |>
  mutate(OBS_VALUE = 100*OBS_VALUE/OBS_VALUE[1]) |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(10, 850, 2)) +
  
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank())

Services - Heures de M.O

Electricite, Plomberie

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("3077", "3078"),
         FREQ == "M") |>
  
  month_to_date() |>
  ggplot() + theme_minimal() + xlab("") + ylab("1 kg en €") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 100, 5),
                     labels = dollar_format(accuracy = 1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

Carrosserie automobile, Mécanique automobile

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("2849", "2848"),
         FREQ == "M") |>
  
  mutate(Prix_conso = sub("^Services : ", "", Prix_conso),
         Prix_conso = sub(" : une heure de main-d'oeuvre (y c. TVA)", "", Prix_conso, fixed = TRUE)) |>
  month_to_date() |>
  ggplot() + theme_minimal() + xlab("") + ylab("1 heure de M.O en €") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 100, 5),
                     labels = dollar_format(accuracy = 1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.65, 0.1),
        legend.title = element_blank())

Shampooing

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("1932", "2326", "1930"),
         FREQ == "M") |>
  
  month_to_date() |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 100, 5),
                     labels = dollar_format(accuracy = 1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.35, 0.9),
        legend.title = element_blank())

Services: Auto, Shampooing, Plomberie

2017-01

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("2849", "3078", "2848", "1932"),
         FREQ == "M") |>
  
  month_to_date() |>
  filter(date >= as.Date("2017-01-01")) |>
  group_by(PRIX_CONSO) |>
  arrange(date) |>
  mutate(OBS_VALUE = 100*OBS_VALUE/OBS_VALUE[1]) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Prix moyens, Services (100 = janvier 2017)") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 300, 5)) +
  
  theme(legend.position = c(0.4, 0.85),
        legend.title = element_blank()) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = OBS_VALUE, color = Prix_conso, label = round(OBS_VALUE, 1)),
             show.legend = F)

Bar / Restaurant

Café

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("2782", "2126"),
         FREQ == "M") |>
  month_to_date() |>
  
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 3, 0.1),
                     labels = dollar_format(accuracy = .1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank())

Cola, Bière

All

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("2433", "2768"),
         FREQ == "M") |>
  month_to_date() |>
  
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 7, 0.1),
                     labels = dollar_format(accuracy = .1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank())

2000-2004

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("2433", "2768"),
         FREQ == "M") |>
  month_to_date() |>
  filter(date >= as.Date("2000-01-01"),
         date <= as.Date("2004-01-01")) |>
  
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = "3 months",
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = seq(0, 7, 0.1),
                     labels = dollar_format(accuracy = .1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank(),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))

Fruits et Légumes

Kiwi, Pamplemousses, Avocat

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("3840", "3903", "3841"),
         FREQ == "M") |>
  month_to_date() |>
  
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 3, 0.1),
                     labels = dollar_format(accuracy = .1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank())

Bananes, Oranges, Carottes, Pomme de terre

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("8959", "8932", "8948", "8942"),
         FREQ == "M") |>
  month_to_date() |>
  
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 5, 0.2),
                     labels = dollar_format(accuracy = .1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank())

Pommes, Courgettes, Oignons, Tomates

Code
`IPC-PM-2015` |>
  filter(PRIX_CONSO %in% c("8953", "8944", "8955", "8951"),
         FREQ == "M") |>
  month_to_date() |>
  
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Prix_conso)) +
  scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 5, 0.2),
                     labels = dollar_format(accuracy = .1, prefix = "", su = " €")) +
  
  theme(legend.position = c(0.85, 0.9),
        legend.title = element_blank())