Code
source (here:: here ("_rinit.R" ))
source (here:: here ("data" , "paris" , "_paris.R" )) # arrondissements_sf()
invisible (Sys.setlocale ("LC_TIME" , "fr_FR.UTF-8" ))
# cd ~/iCloud/website/data/paris; /usr/local/bin/R -e 'quarto::quarto_render("indicateur-dlh-renovation.qmd")'
knitr:: opts_chunk$ set (echo = TRUE , message = FALSE , warning = FALSE ,
fig.width = 8 , fig.height = 5 , dpi = 150 )
reno_path <- here:: here ("data" , "paris" , "indicateur-dlh-renovation.parquet" )
reno <- arrow:: read_parquet (reno_path) |>
dplyr:: transmute (
adresse = adresse_normalisee,
ar = suppressWarnings (as.integer (substr (as.character (arrondissement), 4 , 5 ))),
annee = as.integer (format (annee_de_vote_des_travaux, "%Y" )),
n = nb_de_logts_finances
)
n_operations <- nrow (reno)
n_logements <- sum (reno$ n, na.rm = TRUE )
arr_sf <- arrondissements_sf ()
theme_carte <- theme_void (base_size = 12 ) +
theme (plot.title = element_text (face = "bold" ),
plot.subtitle = element_text (colour = "grey35" ),
plot.margin = margin (5 , 12 , 5 , 5 ))
theme_barres <- theme_minimal (base_size = 12 ) +
theme (plot.title = element_text (face = "bold" ),
plot.subtitle = element_text (colour = "grey35" ),
panel.grid.major.y = element_blank ())
Suivi du programme « Éco Rénovons Paris + » : les opérations de rénovation énergétique de logements sociaux votées, adresse par adresse. 339 opérations entre 2014 et 2025, pour 22 546 logements rénovés au total.
Code
reno |>
dplyr:: arrange (dplyr:: desc (n)) |>
dplyr:: transmute (Adresse = adresse, Arrondissement = ar, Année = annee, Logements = n) |>
head (8 ) |>
gt:: gt () |>
gt:: tab_header (title = "8 plus grandes opérations" ) |>
gt:: tab_options (table.width = "100%" )
Adresse
Arrondissement
Année
Logements
8 RUE GUSTAVE ROUANET
18
2022
1037
14 RUE DE THIONVILLE
19
2025
450
147 RUE OBERKAMPF
11
2025
435
17-27BIS RUE VAUVENARGUES
18
2019
430
66 AVENUE D'IVRY
13
2020
408
21-25 QUAI ANDRE CITROEN
15
2021
329
26-36 RUE DE FONTARABIE
20
2019
316
34 BOULEVARD DE GRENELLE
15
2022
285
Évolution
Code
reno |>
dplyr:: group_by (annee) |>
dplyr:: summarise (n = sum (n, na.rm = TRUE ), operations = dplyr:: n (), .groups = "drop" ) |>
ggplot (aes (annee, n)) +
geom_col (fill = "#2f6f4f" , width = 0.65 ) +
geom_text (aes (label = n), vjust = - 0.4 , size = 3 ) +
scale_x_continuous (breaks = scales:: breaks_width (1 )) +
scale_y_continuous (expand = expansion (mult = c (0 , 0.12 ))) +
labs (title = "Logements sociaux rénovés (votés) par an" , x = NULL , y = NULL ) +
theme_barres +
theme (axis.text.x = element_text (angle = 45 , hjust = 1 ))
Par arrondissement
Code
cnt <- reno |> dplyr:: filter (! is.na (ar)) |> dplyr:: group_by (ar) |>
dplyr:: summarise (n = sum (n, na.rm = TRUE ), .groups = "drop" )
arr_sf |>
dplyr:: left_join (cnt, by = c ("c_ar" = "ar" )) |>
ggplot () +
geom_sf (aes (fill = n), colour = "white" , linewidth = 0.2 ) +
scale_fill_viridis_c (option = "mako" , direction = - 1 , na.value = "grey92" , name = "Logements \n rénovés" ) +
labs (title = "Logements sociaux rénovés par arrondissement" ) +
theme_carte
Toutes les opérations
Code
reno |>
dplyr:: arrange (dplyr:: desc (annee), dplyr:: desc (n)) |>
dplyr:: transmute (Adresse = adresse, Arrondissement = ar, Année = annee, Logements = n) |>
reactable:: reactable (
searchable = TRUE ,
filterable = TRUE ,
pagination = TRUE ,
defaultPageSize = 20 ,
compact = TRUE ,
resizable = TRUE ,
highlight = TRUE ,
wrap = TRUE ,
defaultColDef = reactable:: colDef (
align = "left" ,
headerStyle = list (fontWeight = "bold" ),
style = list (whiteSpace = "normal" , wordBreak = "break-word" )
),
columns = list (
Adresse = reactable:: colDef (minWidth = 220 ),
Arrondissement = reactable:: colDef (minWidth = 90 , maxWidth = 130 ),
Année = reactable:: colDef (minWidth = 70 , maxWidth = 90 ),
Logements = reactable:: colDef (minWidth = 90 , maxWidth = 120 , align = "right" )
)
)
Source & données
Code
tibble:: tibble (
` ` = c ("Jeu de données" , "Producteur" , "Licence" , "Fichier" , "Mise à jour" , "Observations" ),
` ` = c (
"[Rénovation du logement social](https://opendata.paris.fr/explore/dataset/indicateur-dlh-renovation/information/)" ,
"Direction du Logement et de l'Habitat (DLH) — Ville de Paris" ,
"Open Database License (ODbL)" ,
sprintf ("`data/paris/indicateur-dlh-renovation.parquet` (%s ko) + `arrondissements.parquet`" ,
round (file.size (reno_path) / 1024 )),
format (as.Date (file.mtime (reno_path)), "%d %B %Y" ),
sprintf ("%d opérations, %s logements, %d-%d" , n_operations, format (n_logements, big.mark = " " ),
min (reno$ annee), max (reno$ annee))
)
) |>
gt:: gt () |> gt:: fmt_markdown (columns = ` ` ) |>
gt:: tab_options (table.width = "100%" , column_labels.hidden = TRUE )
Jeu de données
Rénovation du logement social
Producteur
Direction du Logement et de l’Habitat (DLH) — Ville de Paris
Licence
Open Database License (ODbL)
Fichier
data/paris/indicateur-dlh-renovation.parquet (9 ko) + arrondissements.parquet
Mise à jour
05 septembre 2026
Observations
339 opérations, 22 546 logements, 2014-2025