Code
source (here:: here ("_rinit.R" ))
source (here:: here ("data" , "paris" , "_paris.R" )) # wkb2sfc(), paris_basemap(), arrondissements_sf()
invisible (Sys.setlocale ("LC_TIME" , "fr_FR.UTF-8" ))
# cd ~/iCloud/website/data/paris; /usr/local/bin/R -e 'quarto::quarto_render("ilots-de-fraicheur-equipements-activites.qmd")'
knitr:: opts_chunk$ set (echo = TRUE , message = FALSE , warning = FALSE ,
fig.width = 8 , fig.height = 5 , dpi = 150 )
if_path <- here:: here ("data" , "paris" , "ilots-de-fraicheur-equipements-activites.parquet" )
ilf <- arrow:: read_parquet (if_path) |>
dplyr:: mutate (ar = suppressWarnings (as.integer (substr (arrondissement, 4 , 5 ))))
n_tot <- nrow (ilf)
arr_sf <- arrondissements_sf ()
pts_sf <- ilf |>
dplyr:: mutate (geometry = wkb2sfc (geo_point_2d)) |>
sf:: st_as_sf (crs = 4326 )
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 ())
Un recensement, en vue des épisodes de canicule, des lieux et dispositifs « frais » accessibles au public : ombrières, brumisateurs, piscines, baignades extérieures, mais aussi des lieux fermés naturellement climatisés — musées, bibliothèques, mairies d’arrondissement, lieux de culte. 535 équipements au total, 82% d’entre eux gratuits.
Code
ilf |>
dplyr:: transmute (Nom = nom, Type = type, Adresse = adresse, Arrondissement = ar, Payant = payant) |>
dplyr:: slice_sample (n = 8 ) |>
gt:: gt () |>
gt:: sub_missing (missing_text = "—" ) |>
gt:: tab_header (title = "8 équipements tirés au hasard" ) |>
gt:: tab_options (table.width = "100%" )
Nom
Type
Adresse
Arrondissement
Payant
Musée Maillol
Musée
59 RUE DE GRENELLE
7
Oui
Eglise Orthodoxe Grecque
Lieux de culte
7 RUE GEORGES BIZET
16
Non
Musée du cinéma - Cinémathèque Française
Musée
51 rue de Bercy
12
Oui
KIOSQUE A MUSIQUE PROMENADE PEREIRE - PROMENADE GILBERTE BROSSOLETTE
Ombrière pérenne
87B AVENUE DES TERNES
17
Non
Terrain de boules Botzaris
Terrain de boules
72 rue Botzaris
19
Non
Eglise Protestante Americaine de Paris
Lieux de culte
63 QU ORSAY
7
Non
Eglise Notre-Dame de Bercy
Lieux de culte
10 PL LACHAMBEAUDIE
12
Non
Centre sportif Louis Lumière
Baignade extérieure
30 rue Louis Lumière
20
Non
Carte
Code
pal <- leaflet:: colorFactor ("Paired" , domain = ilf$ type)
leaflet:: leaflet (pts_sf, options = leaflet:: leafletOptions (minZoom = 11 )) |>
paris_basemap () |>
leaflet:: addPolygons (data = arr_sf, fill = FALSE , color = "#999" , weight = 1 ) |>
leaflet:: addCircleMarkers (
radius = 5 , stroke = FALSE , fillOpacity = 0.8 ,
fillColor = ~ pal (type),
label = ~ sprintf ("%s — %s" , nom, type),
popup = ~ sprintf ("<b>%s</b><br>%s<br>%s<br>%s" , nom, type, adresse,
ifelse (payant == "Oui" , "Payant" , "Gratuit" ))
) |>
leaflet:: addLegend ("bottomright" , pal = pal, values = ~ type, title = "Type" , opacity = 0.9 )
Par arrondissement
Code
cnt <- ilf |> dplyr:: filter (! is.na (ar)) |> dplyr:: count (ar, name = "n" )
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 = "Équipements" ) +
labs (title = "Îlots de fraîcheur par arrondissement" ) +
theme_carte
Ce que recensent les données
Code
ilf |>
dplyr:: count (type, sort = TRUE ) |>
dplyr:: mutate (type = forcats:: fct_reorder (type, n)) |>
ggplot (aes (n, type)) +
geom_col (fill = "#2f6f9f" , width = 0.7 ) +
geom_text (aes (label = n), hjust = - 0.2 , size = 3.2 ) +
scale_x_continuous (expand = expansion (mult = c (0 , 0.12 ))) +
labs (title = "Type d'équipement" ,
subtitle = "Ombrières, lieux de culte et brumisateurs forment le gros des recensements" ,
x = NULL , y = NULL ) +
theme_barres
Code
ilf |>
dplyr:: filter (! is.na (payant)) |>
dplyr:: count (payant) |>
dplyr:: mutate (payant = ifelse (payant == "Oui" , "Payant" , "Gratuit" )) |>
ggplot (aes (n, payant)) +
geom_col (fill = "#3b6f8a" , width = 0.5 ) +
geom_text (aes (label = scales:: percent (n / sum (n), 1 )), hjust = - 0.15 , size = 3.5 ) +
scale_x_continuous (expand = expansion (mult = c (0 , 0.12 ))) +
labs (title = "Accès payant ou gratuit" , x = NULL , y = NULL ) +
theme_barres
Tous les équipements
Code
ilf |>
dplyr:: arrange (type, nom) |>
dplyr:: transmute (Nom = nom, Type = type, Adresse = adresse, Arrondissement = ar, Payant = payant) |>
reactable:: reactable (
searchable = TRUE ,
filterable = TRUE ,
pagination = TRUE ,
defaultPageSize = 25 ,
showPageSizeOptions = TRUE ,
pageSizeOptions = c (10 , 25 , 50 , 100 ),
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 (
Nom = reactable:: colDef (minWidth = 180 ),
Type = reactable:: colDef (minWidth = 140 ),
Adresse = reactable:: colDef (minWidth = 200 ),
Arrondissement = reactable:: colDef (minWidth = 70 , maxWidth = 120 ),
Payant = reactable:: colDef (minWidth = 70 , maxWidth = 100 )
)
)
Source & données
Code
tibble:: tibble (
` ` = c ("Jeu de données" , "Producteur" , "Licence" , "Fichier" , "Mise à jour" , "Observations" ),
` ` = c (
"[Îlots de fraîcheur - Equipements / Activités](https://opendata.paris.fr/explore/dataset/ilots-de-fraicheur-equipements-activites/information/)" ,
"Direction de la Transition Écologique et du Climat — Ville de Paris" ,
"Open Database License (ODbL)" ,
sprintf ("`data/paris/ilots-de-fraicheur-equipements-activites.parquet` (%s ko) + `arrondissements.parquet`" ,
round (file.size (if_path) / 1024 )),
format (as.Date (file.mtime (if_path)), "%d %B %Y" ),
sprintf ("%d équipements" , n_tot)
)
) |>
gt:: gt () |> gt:: fmt_markdown (columns = ` ` ) |>
gt:: tab_options (table.width = "100%" , column_labels.hidden = TRUE )
Jeu de données
Îlots de fraîcheur - Equipements / Activités
Producteur
Direction de la Transition Écologique et du Climat — Ville de Paris
Licence
Open Database License (ODbL)
Fichier
data/paris/ilots-de-fraicheur-equipements-activites.parquet (44 ko) + arrondissements.parquet
Mise à jour
02 novembre 2026
Observations
535 équipements