Salaire moyen par tête - SMPT (données CVS) - t_salaire_val

Données - INSEE

Last observation: Q2 2026 (N = 22)

First observation: Q1 1949 (N = 22)

Last data update: 03 sept. 2026, 05:31

Last compile: 06 sept. 2026, 14:47

Structure

  • Comptes nationaux trimestriels au troisième trimestre 2023. html

  • Salaires. xls

  • Comptes de branches. html

  • PIB et ses composantes. html

  • Secteurs et ses composantes. html

Bibliographie

Français

  • “Mesurer”le” pouvoir d’achat”, F. Geerolf, Document de travail, Juillet 2024. [pdf]

  • “Inflation en France: IPC ou IPCH ?”, F. Geerolf, Document de travail, Juillet 2024. [pdf]

  • “La taxe inflationniste, le pouvoir d’achat, le taux d’épargne et le déficit public”, F. Geerolf, Document de travail, Juillet 2024. [pdf]

variable

Code
t_salaire_val |>
  group_by(variable) |>
  summarise(Nobs = n()) |>
  arrange(-Nobs) |>
  print_table_conditional()
variable Nobs
(DE) à (C5) 310
(DE) à (MN), (RU) 310
(GZ) à (MN), (RU) 310
AZ 310
C 310
C1 310
C2 310
C3 310
C4 310
C5 310
DE 310
FZ 310
GZ 310
HZ 310
IZ 310
JZ 310
KZ 310
LZ 310
MN 310
OQ 310
RU 310
TOTAL 310

date

Code
t_salaire_val |>
  group_by(date) |>
  summarise(Nobs = n()) |>
  arrange(desc(date)) |>
  print_table_conditional()

2021, Trimestre 3

Code
t_salaire_val |>
  filter(date %in% c(as.Date("2023-01-01"), as.Date("2011-07-01"))) |>
  spread(date, value) |>
  mutate(evolution = 100*((`2023-01-01`/`2011-07-01`)^(1/10)-1)) |>
  arrange(-`2023-01-01`) |>
  print_table_conditional()
variable 2011-07-01 2023-01-01 evolution
JZ 12768.65 16336.46 2.4946737
KZ 11185.27 15081.70 3.0339578
C4 11388.75 15030.07 2.8131095
C2 13263.02 14987.31 1.2297412
C3 10514.33 12779.07 1.9698463
DE 10101.34 12025.02 1.7584966
LZ 9918.17 11787.47 1.7416802
C5 8925.36 11309.23 2.3954666
(DE) à (C5) 8880.06 11143.21 2.2961859
MN 8962.99 11093.07 2.1550602
C 8760.36 11046.34 2.3457105
FZ 8506.33 10582.37 2.2078073
(DE) à (MN), (RU) 8415.63 10524.61 2.2614480
(GZ) à (MN), (RU) 8288.86 10389.13 2.2841729
TOTAL 7851.81 9841.73 2.2845801
HZ 8147.86 9541.16 1.5911232
GZ 7255.33 9141.19 2.3374418
OQ 6733.73 8476.34 2.3281840
C1 6303.35 8272.30 2.7555967
RU 6249.46 7687.53 2.0926397
IZ 5978.69 7258.14 1.9581462
AZ 6317.28 5936.60 -0.6195941

Valeurs en Euros

KZ, JZ, C4

All

Code
t_salaire_val |>
  filter(variable %in% c("KZ", "JZ", "C4")) |>
  group_by(variable) |>
  ggplot() + ylab("Salaire moyen par tête - SMPT") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_y_log10(breaks = 1000*seq(1, 300, 1),
                     labels = dollar_format(accuracy = 1, su = "€", pre = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

1990-

Code
t_salaire_val |>
  filter(variable %in% c("KZ", "JZ", "C4"),
         date >= as.Date("1990-01-01")) |>
  group_by(variable) |>
  ggplot() + ylab("Salaire moyen par tête - SMPT") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_y_log10(breaks = 1000*seq(1, 300, 1),
                     labels = dollar_format(accuracy = 1, su = "€", pre = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

2017T2-

Code
t_salaire_val |>
  filter(variable %in% c("KZ", "JZ", "C4"),
         date >= as.Date("2017-04-01")) |>
  group_by(variable) |>
  mutate(value = 100*value/value[date == as.Date("2017-04-01")]) |>
  ggplot() + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_date(breaks = seq(1920, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

C2, C3, C4, C5

All

Code
t_salaire_val |>
  filter(variable %in% c("C2", "C3", "C4", "C5")) |>
  group_by(variable) |>
  ggplot() + ylab("Salaire moyen par tête - SMPT") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_y_log10(breaks = 1000*seq(1, 300, 1),
                     labels = dollar_format(accuracy = 1, su = "€", pre = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

1990-

Code
t_salaire_val |>
  filter(variable %in% c("C2", "C3", "C4", "C5"),
         date >= as.Date("1990-01-01")) |>
  group_by(variable) |>
  ggplot() + ylab("Salaire moyen par tête - SMPT") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_y_log10(breaks = 1000*seq(1, 300, 1),
                     labels = dollar_format(accuracy = 1, su = "€", pre = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

2017T2-

Code
t_salaire_val |>
  filter(variable %in% c("C2", "C3", "C4", "C5"),
         date >= as.Date("2017-04-01")) |>
  group_by(variable) |>
  mutate(value = 100*value/value[date == as.Date("2017-04-01")]) |>
  ggplot() + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_date(breaks = seq(1920, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

Agriculture, Industrie, Total

Value

Code
t_salaire_val |>
  filter(variable %in% c("TOTAL", "AZ", "C"),
         date >= as.Date("1990-01-01")) |>
  group_by(variable) |>
  ggplot() + ylab("Salaire moyen par tête - SMPT") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_y_log10(breaks = 1000*seq(1, 300, 1),
                     labels = dollar_format(accuracy = 1, su = "€", pre = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

1990-

Code
t_salaire_val |>
  filter(variable %in% c("TOTAL", "AZ", "C"),
         date >= as.Date("1990-01-01")) |>
  group_by(variable) |>
  mutate(value = 100*value/value[date == as.Date("1990-01-01")]) |>
  ggplot() + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 10),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

1996-

Code
t_salaire_val |>
  filter(variable %in% c("TOTAL", "AZ", "C"),
         date >= as.Date("1996-01-01")) |>
  group_by(variable) |>
  mutate(value = 100*value/value[date == as.Date("1996-01-01")]) |>
  ggplot() + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 10),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

2012-

Code
t_salaire_val |>
  filter(variable %in% c("TOTAL", "AZ", "C"),
         date >= as.Date("2012-01-01")) |>
  group_by(variable) |>
  mutate(value = 100*value/value[date == as.Date("2012-01-01")]) |>
  ggplot() + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_date(breaks = seq(1920, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

2017-

Code
t_salaire_val |>
  filter(variable %in% c("TOTAL", "AZ", "C"),
         date >= as.Date("2017-01-01")) |>
  group_by(variable) |>
  mutate(value = 100*value/value[date == as.Date("2017-01-01")]) |>
  ggplot() + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_date(breaks = seq(1920, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

2017T1-

Code
t_salaire_val |>
  filter(variable %in% c("TOTAL", "AZ", "C"),
         date >= as.Date("2017-01-01")) |>
  group_by(variable) |>
  mutate(value = 100*value/value[date == as.Date("2017-01-01")]) |>
  ggplot() + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_date(breaks = seq(1920, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

2017T2-

Code
t_salaire_val |>
  filter(variable %in% c("TOTAL", "AZ", "C"),
         date >= as.Date("2017-04-01")) |>
  group_by(variable) |>
  mutate(value = 100*value/value[date == as.Date("2017-04-01")]) |>
  ggplot() + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_date(breaks = seq(1920, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

2019T4-

Code
t_salaire_val |>
  filter(variable %in% c("TOTAL", "AZ", "C"),
         date >= as.Date("2019-10-01")) |>
  group_by(variable) |>
  mutate(value = 100*value/value[date == as.Date("2019-10-01")]) |>
  ggplot() + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_date(breaks = seq(1920, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

2021T3-

Code
df <- t_salaire_val |>
  filter(variable %in% c("TOTAL", "AZ", "C"),
         date >= as.Date("2021-07-01")) |>
  group_by(variable) |>
  arrange(date) |>
  mutate(value = 100*value/value[1]) |>
  date_to_yearqtr()

ggplot(data = df) + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_yearqtr(labels = date_format("%Y T%q"),
                  breaks = seq(from = min(df$date), to = max(df$date), by = 0.25)) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank(),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_log10(breaks = seq(10, 300, 1),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

2021T4-

Code
df <- t_salaire_val |>
  filter(variable %in% c("TOTAL", "AZ", "C"),
         date >= as.Date("2021-10-01")) |>
  group_by(variable) |>
  arrange(date) |>
  mutate(value = 100*value/value[1]) |>
  date_to_yearqtr()

ggplot(data = df) + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_yearqtr(labels = date_format("%Y T%q"),
                  breaks = seq(from = min(df$date), to = max(df$date), by = 0.25)) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank(),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_log10(breaks = seq(10, 300, 1),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

Services Marchands, Total, Non Marchands

1990-

Code
t_salaire_val |>
  filter(variable %in% c("TOTAL", "OQ", "(GZ) à (MN), (RU)"),
         date >= as.Date("1990-01-01")) |>
  group_by(variable) |>
  mutate(value = 100*value/value[date == as.Date("1990-01-01")]) |>
  ggplot() + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 5),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

1996-

Code
t_salaire_val |>
  filter(variable %in% c("TOTAL", "OQ", "(GZ) à (MN), (RU)"),
         date >= as.Date("1996-01-01")) |>
  group_by(variable) |>
  mutate(value = 100*value/value[date == as.Date("1996-01-01")]) |>
  ggplot() + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 5),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

2012-

Code
t_salaire_val |>
  filter(variable %in% c("TOTAL", "OQ", "(GZ) à (MN), (RU)"),
         date >= as.Date("2012-01-01")) |>
  group_by(variable) |>
  mutate(value = 100*value/value[date == as.Date("2012-01-01")]) |>
  ggplot() + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_date(breaks = seq(1920, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

2017-

Code
df <- t_salaire_val |>
  filter(variable %in% c("TOTAL", "OQ", "(GZ) à (MN), (RU)"),
         date >= as.Date("2017-01-01")) |>
  group_by(variable) |>
  arrange(date) |>
  mutate(value = 100*value/value[1]) |>
  date_to_yearqtr() |>
  ungroup()

ggplot(data = df) + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_yearqtr(labels = date_format("%Y T%q"),
                  breaks = seq(from = min(df$date), to = max(df$date), by = 0.5)) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank(),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

2017T1-

Code
df <- t_salaire_val |>
  filter(variable %in% c("TOTAL", "OQ", "(GZ) à (MN), (RU)"),
         date >= as.Date("2017-01-01")) |>
  group_by(variable) |>
  arrange(date) |>
  mutate(value = 100*value/value[1]) |>
  date_to_yearqtr() |>
  ungroup()

ggplot(data = df) + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_yearqtr(labels = date_format("%Y T%q"),
                  breaks = seq(from = min(df$date), to = max(df$date), by = 0.5)) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank(),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

2017T2-

Code
df <- t_salaire_val |>
  filter(variable %in% c("TOTAL", "OQ", "(GZ) à (MN), (RU)"),
         date >= as.Date("2017-04-01")) |>
  group_by(variable) |>
  arrange(date) |>
  mutate(value = 100*value/value[1]) |>
  date_to_yearqtr() |>
  ungroup()

ggplot(data = df) + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_yearqtr(labels = date_format("%Y T%q"),
                  breaks = seq(from = min(df$date), to = max(df$date), by = 0.5)) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank(),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

2019T4-

Code
df <- t_salaire_val |>
  filter(variable %in% c("TOTAL", "OQ", "(GZ) à (MN), (RU)"),
         date >= as.Date("2019-10-01")) |>
  group_by(variable) |>
  arrange(date) |>
  mutate(value = 100*value/value[1]) |>
  date_to_yearqtr() |>
  ungroup()

ggplot(data = df) + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_yearqtr(labels = date_format("%Y T%q"),
                  breaks = seq(from = min(df$date), to = max(df$date), by = 0.25)) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank(),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

2021T2-

Code
df <- t_salaire_val |>
  filter(variable %in% c("TOTAL", "OQ", "(GZ) à (MN), (RU)"),
         date >= as.Date("2021-04-01")) |>
  group_by(variable) |>
  arrange(date) |>
  mutate(value = 100*value/value[1]) |>
  date_to_yearqtr() |>
  ungroup()

ggplot(data = df) + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_yearqtr(labels = date_format("%Y T%q"),
                  breaks = seq(from = min(df$date), to = max(df$date), by = 0.25)) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank(),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

2021T3-

Code
df <- t_salaire_val |>
  filter(variable %in% c("TOTAL", "OQ", "(GZ) à (MN), (RU)"),
         date >= as.Date("2021-07-01")) |>
  group_by(variable) |>
  arrange(date) |>
  mutate(value = 100*value/value[1]) |>
  date_to_yearqtr() |>
  ungroup()

ggplot(data = df) + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_yearqtr(labels = date_format("%Y T%q"),
                  breaks = seq(from = min(df$date), to = max(df$date), by = 0.25)) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank(),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))

2021T4-

Nominal

Code
df <- t_salaire_val |>
  filter(variable %in% c("TOTAL", "OQ", "(GZ) à (MN), (RU)"),
         date >= as.Date("2021-10-01")) |>
  group_by(variable) |>
  arrange(date) |>
  mutate(value = 100*value/value[1]) |>
  date_to_yearqtr() |>
  ungroup()

ggplot(data = df) + ylab("") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  scale_x_yearqtr(labels = date_format("%Y T%q"),
                  breaks = seq(from = min(df$date), to = max(df$date), by = 0.25)) +
  theme(legend.position = c(0.7, 0.2),
        legend.title = element_blank(),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  geom_label_repel(data = . %>% filter(date == max(date)),
             aes(x = date, y = value, color = variable, label = round(value, 1)))