Prix au m² par arrondissement - arrdt

Data - Notaires

Exemples

2008-

Code
arrdt |>
  filter(date %in% c(as.Date("2008-01-01"), max(date))) |>
  spread(date, value) %>%
  #setNames(c("Arrondissement", "2021T3", "2023T2")) %>%
  mutate(`Croissance (%)` = round(100*(.[[3]]/.[[2]]-1), 1),
         `Croissance (€)` = round(.[[3]]-.[[2]])) |>
  arrange(-`Croissance (%)`) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

2009Q2-

Code
arrdt |>
  filter(date %in% c(as.Date("2009-04-01"), max(date))) |>
  mutate(date = paste0("Prix m2 ", date)) |>
  spread(date, value) %>%
  #setNames(c("Arrondissement", "2021T3", "2023T2")) %>%
  mutate(`Croissance (%)` = round(100*(.[[3]]/.[[2]]-1), 1),
         `Croissance (€)` = round(.[[3]]-.[[2]])) |>
  arrange(-`Croissance (%)`) |>
  rename(arrdt = Location) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

2008-2020

Code
arrdt |>
  filter(date %in% c(as.Date("2008-01-01"), as.Date("2020-01-01"))) |>
  spread(date, value) %>%
  #setNames(c("Arrondissement", "2021T3", "2023T2")) %>%
  mutate(`Croissance (%)` = round(100*(.[[3]]/.[[2]]-1), 1),
         `Croissance (€)` = round(.[[3]]-.[[2]])) |>
  arrange(-`Croissance (%)`) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

2022T2-2023T2

Code
arrdt |>
  filter(date %in% c(as.Date("2022-04-01"), as.Date("2023-04-01"))) |>
  spread(date, value) %>%
  #setNames(c("Arrondissement", "2021T3", "2023T2")) %>%
  mutate(`Croissance (%)` = round(100*(.[[3]]/.[[2]]-1), 1),
         `Croissance (€)` = round(.[[3]]-.[[2]])) |>
  arrange(-`Croissance (%)`) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

2021T3-2023T2

Code
arrdt |>
  filter(date %in% c(as.Date("2021-07-01"), as.Date("2023-04-01"))) |>
  spread(date, value) %>%
  #setNames(c("Arrondissement", "2021T3", "2023T2")) %>%
  mutate(`Croissance (%)` = round(100*(.[[3]]/.[[2]]-1), 1),
         `Croissance (€)` = round(.[[3]]-.[[2]])) |>
  arrange(-`Croissance (%)`) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

100 = 2008

Code
arrdt |>
  filter(Location %in% c("Centre", "6e", "10e")) |>
  group_by(Location) |>
  mutate(value = 100*value/value[date == as.Date("2008-01-01")]) |>
  ggplot() + geom_line(aes(x = date, y = value, color = Location)) +
  
  theme_minimal()  +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Indice des prix au mètre carré (2008 = 100") +
  scale_y_log10(breaks = seq(0, 7000, 10))

Carte arrondissements

Repère

Code
i_g("bib/france/arrondissements-paris-2.jpg")

Prix au m² (dernier trimestre)

Code
derniere_date <- max(arrdt_carte$date)
derniere_valeur <- arrdt_carte |> filter(date == derniere_date)

arr_sf |>
  left_join(derniere_valeur, by = "c_ar") |>
  ggplot() +
  geom_sf(aes(fill = value), colour = "white", linewidth = 0.2) +
  geom_sf_text(aes(label = c_ar), colour = "white", size = 3, fontface = "bold") +
  scale_fill_viridis_c(option = "viridis", direction = -1, na.value = "grey92",
                       name = "€/m²",
                       labels = scales::label_number(big.mark = " ", suffix = " €")) +
  labs(title = "Prix au m² des appartements anciens par arrondissement",
       subtitle = paste0("T", lubridate::quarter(derniere_date), " ",
                          lubridate::year(derniere_date),
                          " — du simple (~", scales::label_number(big.mark = " ")(round(min(derniere_valeur$value, na.rm = TRUE), -2)),
                          " €) au double (~", scales::label_number(big.mark = " ")(round(max(derniere_valeur$value, na.rm = TRUE), -2)), " €)")) +
  theme_carte

Croissance depuis 2008

Code
base_2008 <- arrdt_carte |> filter(date == as.Date("2008-01-01")) |> select(c_ar, base = value)
croissance <- derniere_valeur |>
  left_join(base_2008, by = "c_ar") |>
  mutate(croissance = 100*(value/base - 1))

arr_sf |>
  left_join(croissance, by = "c_ar") |>
  ggplot() +
  geom_sf(aes(fill = croissance), colour = "white", linewidth = 0.2) +
  geom_sf_text(aes(label = c_ar), colour = "white", size = 3, fontface = "bold") +
  scale_fill_viridis_c(option = "magma", direction = -1, na.value = "grey92",
                       name = "%",
                       labels = scales::label_number(suffix = " %")) +
  labs(title = "Croissance du prix au m² depuis 2008 par arrondissement",
       subtitle = paste0("2008 — T", lubridate::quarter(derniere_date), " ", lubridate::year(derniere_date))) +
  theme_carte

Prix mètre carré

13ème, 14ème, 15ème arrondissement

All

Code
arrdt |>
  filter(Location %in% c("13e", "14e", "15e")) |>
  group_by(Location) |>
  ggplot() + geom_line(aes(x = date, y = value, color = gsub("e", "ème arrondissement", Location))) +
  
  theme_minimal()  +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Prix au mètre carré") +
  scale_y_log10(breaks = seq(0, 17000, 1000),
                labels = dollar_format(p = "", su = "€", a = 1))

2014-

Code
arrdt |>
  filter(Location %in% c("13e", "14e", "15e")) |>
  group_by(Location) |>
  filter(date >= as.Date("2014-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value, color = gsub("e", "ème arrondissement", Location))) +
  
  theme_minimal()  +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Prix au mètre carré") +
  scale_y_log10(breaks = seq(0, 17000, 1000),
                labels = dollar_format(p = "", su = "€", a = 1))

2017-

Code
arrdt |>
  filter(Location %in% c("13e", "14e", "15e")) |>
  group_by(Location) |>
  filter(date >= as.Date("2017-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value, color = gsub("e", "ème arrondissement", Location))) +
  
  theme_minimal()  +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Prix au mètre carré") +
  scale_y_log10(breaks = seq(0, 17000, 200),
                labels = dollar_format(p = "", su = "€", a = 1))

2018-

Code
arrdt |>
  filter(Location %in% c("13e", "14e", "15e")) |>
  group_by(Location) |>
  filter(date >= as.Date("2018-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value, color = gsub("e", "ème arrondissement", Location))) +
  
  theme_minimal()  +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Prix au mètre carré") +
  scale_y_log10(breaks = seq(0, 17000, 200),
                labels = dollar_format(p = "", su = "€", a = 1))

16ème, 6ème, 7ème arrondissement

Value

Code
arrdt |>
  filter(Location %in% c("16e", "6e", "7e")) |>
  group_by(Location) |>
  ggplot() + geom_line(aes(x = date, y = value, color = gsub("e", "ème arrondissement", Location))) +
  
  theme_minimal()  +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Prix au mètre carré") +
  scale_y_log10(breaks = seq(0, 17000, 1000),
                labels = dollar_format(p = "", su = "€", a = 1))

100 = 2008

Code
arrdt |>
  filter(Location %in% c("16e", "6e", "7e")) |>
  group_by(Location) |>
  mutate(value = 100*value/value[date == as.Date("2008-01-01")]) |>
  ggplot() + geom_line(aes(x = date, y = value, color = gsub("e", "ème arrondissement", Location))) +
  
  theme_minimal()  +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Indice des prix au mètre carré (2008 = 100)") +
  scale_y_log10(breaks = seq(0, 7000, 10))

6ème, 5ème, 14ème arrondissement

Value

Code
arrdt |>
  filter(Location %in% c("6e", "5e", "14e")) |>
  group_by(Location) |>
  ggplot() + geom_line(aes(x = date, y = value, color = gsub("e", "ème arrondissement", Location))) +
  
  theme_minimal()  +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Prix au mètre carré") +
  scale_y_log10(breaks = seq(0, 17000, 1000),
                labels = dollar_format(p = "", su = "€", a = 1))

100 = 2008

Code
arrdt |>
  filter(Location %in% c("6e", "5e", "14e")) |>
  group_by(Location) |>
  mutate(value = 100*value/value[date == as.Date("2008-01-01")]) |>
  ggplot() + geom_line(aes(x = date, y = value, color = gsub("e", "ème arrondissement", Location))) +
  
  theme_minimal()  +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Indice des prix au mètre carré (2008 = 100)") +
  scale_y_log10(breaks = seq(0, 7000, 10))

1er, 2ème, 3ème arrondissement

Value

Code
arrdt |>
  filter(Location %in% c("1er", "2e", "3e")) |>
  mutate(Location = case_when(Location == "1er" ~ "1er arrondissement",
                              Location == "2e" ~ "2ème arrondissement",
                              Location == "3e" ~ "3ème arrondissement")) |>
  group_by(Location) |>
  ggplot() + geom_line(aes(x = date, y = value, color = Location)) +
  
  theme_minimal()  +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Prix au mètre carré") +
  scale_y_log10(breaks = seq(0, 17000, 1000),
                labels = dollar_format(p = "", su = "€", a = 1))

100 = 2008

Code
arrdt |>
  filter(Location %in% c("1er", "2e", "3e")) |>
  mutate(Location = case_when(Location == "1er" ~ "1er arrondissement",
                              Location == "2e" ~ "2ème arrondissement",
                              Location == "3e" ~ "3ème arrondissement")) |>
  group_by(Location) |>
  mutate(value = 100*value/value[date == as.Date("2008-01-01")]) |>
  ggplot() + geom_line(aes(x = date, y = value, color = Location)) +
  
  theme_minimal()  +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Indice des prix au mètre carré (2008 = 100)") +
  scale_y_log10(breaks = seq(0, 7000, 10))