From be0e96d9bda2db6cb01be19504d77873855131d7 Mon Sep 17 00:00:00 2001 From: MarlyseCLEMENT <96878048+MarlyseCLEMENT@users.noreply.github.com> Date: Thu, 24 Mar 2022 11:09:51 +0100 Subject: [PATCH 1/3] Update 15-creer-des-graphiques-et-cartes-pour-le-web.Rmd MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## les cartes leaflet, option internet des proxy mais il manque l'image :/, mais par contre les support étant public je n'ai pas mis les codes du proxy , est ce qu'on peut les mettre ? dou la phrase Les utilisateurs R du ministère vous renseigneront sur ce sujet au besoin. ## cartes à élements ponctuels (juste avant l'export). Restera a rajouter la carte avec des elements ponctuel qualitatifs. une fois que ca marchera comme on veut. Sur le principe ca marche j'ai des marqueur de differente couleurs mais je n'ai pas les logos d'icone.... dommage! --- ...r-des-graphiques-et-cartes-pour-le-web.Rmd | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/15-creer-des-graphiques-et-cartes-pour-le-web.Rmd b/15-creer-des-graphiques-et-cartes-pour-le-web.Rmd index 672bac9..7d951e9 100644 --- a/15-creer-des-graphiques-et-cartes-pour-le-web.Rmd +++ b/15-creer-des-graphiques-et-cartes-pour-le-web.Rmd @@ -15,6 +15,8 @@ library(tidyverse) library(variousdata) ``` +Certains proxy empechent la visualisation du fond de carte. Il faut donc modifier les options internet si c'est le cas , en passant par le proxy national qui l'autorise. Les utilisateurs R du ministère vous renseigneront sur ce sujet au besoin. + ### Carte choroplète Ci-dessous un exemple avancé de carte choroplète avec leaflet. @@ -163,6 +165,84 @@ carte_rond_proportionnel<-leaflet(sdg_indicators_2015_sf_centroid) %>% carte_rond_proportionnel ``` +### Carte à élements ponctuels (markers) + +Leaflet permet aussi de créer des cartes à éléments ponctuels (points/ Markers en anglais) dans une carte. + +Les éléments ponctuels sont cartographiable pour les types de données suivantes : + + • Les `SpatialPoints` ou `SpatialPointsDataFrame` (venant de la library {sp} ) + • Les `POINT`, `sfc_POINT`, et les autres objets {sf} (du package du même nom); avec considération uniquement des coordonnées X et Y + • Les matrices numériques sur 2 colonnes (en considérant la première colonne comme la longitude et la seconde comme la latitude) + • Les Data Frame avec des variables de longitude et latitude. Celles ci peuvent être explicitées dans la fonction de `marker` comme colonne de données (ex. :  addAwesomeMarkers(lng = ~Longitude, lat = ~Latitude)), ou laissées à l'appréciation de la fonction pour les déterminer. Pour cette dernière, les noms suivants lat/latitude and lon/lng/long/longitude sont reconnus (attention : senssible à la casse). + • En fournissant de simple vecteur numérique comme arguments pour lng et lat + + +Remarque : les `MULTIPOINT` provenant de {sf} ne semblent pas encore supporté. + +- Créer des points "maison" + +Les markers (points) d’origine de leaflet ne semblent plus disponibles. Il faut donc créer des markers personnalisés. Leaflet supporte ainsi les « awesome markers » du plugin leaflet {awesome markers}. +La commande pour cela est `makeAwesomeIcon`. Les arguments sont le nom de l’icone (icon), la couleur souhaitée du marker (markerColor), la couleur de l’icone (iconColor), la base choisie pour le nom de l'icone (library). + +``` {r} +icon.glyphicon <- makeAwesomeIcon(icon = "flag", markerColor = "blue", iconColor = "black", library = "glyphicon", squareMarker = TRUE) +``` + +D’autres icones sont disponibles à partir de différentes sources. La source utilisé est précisée dans l’argument « library » de makeAwesomeIcon. +Exemple : Glyphicon (https://getbootstrap.com/docs/3.3/components/) , ion (https://ionic.io/ionicons), fa (https://fontawesome.com/icons) + +- Création de la carte + +La carte leaflet se crée ensuite comme toutes les autres cartes leaflet. AddAwesomeMarkers ajoute des éléments ponctuels à la carte. Il faut préciser l'icone que l'on souhaite utiliser. + +``` {r} +leaflet() %>% addTiles() %>% + addAwesomeMarkers( + lng = -118.456554, lat = 34.078039, + label = "This is a label", + icon = icon.glyphicon) +``` +Le label avec un texte affichera celui ci au passage de la souris. Si on fait appel à une colonne (tout comme lng et lat) il faut utiliser `~` devant le nom de la colonne. + +- Création de carte plus complexes (plusieurs éléments) + +Pour des cartes plus complexe ou l’icone ou la couleur depend d’une variable, voici la procedure. + +Pour une variable quantitative nous allons faire varier la couleurs. Dans l'exemple ci dessous nous prenons des magnitudes de tremblements de terres. + +``` +# sélection des 20 premiers tremblement de terre +df.20 <- quakes[1:20,] + +# création d’une fonction qui détermine la couleur en fonction de l’intensité +getColor <- function(quakes) { + sapply(quakes$mag, function(mag) { + if(mag <= 4) { + "green" + } else if(mag <= 5) { + "orange" + } else { + "red" + } }) +} + +# création du type d’icone +icons <- awesomeIcons( + icon = 'ios-close', + iconColor = 'black', + library = 'ion', + markerColor = getColor(df.20) +) + +#creation de la carte, +leaflet(df.20) %>% addTiles() %>% + addAwesomeMarkers(~long, ~lat, icon=icons, label=~as.character(mag)) +``` + +La latitude et la longitude sont précisées dans les colonnes `long` et `lat`. Remarquer le ~devant pour préciser que nous faisons appel à des variables. +Le label précise que au passage de la souris s'affiche l'intensité du tremblement de terre transformé en caractère. Le caractère ~ est avant le code R associé au label. + ## Exporter une sortie html La foncion `saveWidget()` permet d'exporter une sortie d'un `HTML Widget` en fichier HTML. From 0348f73ee34e916593097a5300568407eb3e9ab5 Mon Sep 17 00:00:00 2001 From: MarlyseCLEMENT <96878048+MarlyseCLEMENT@users.noreply.github.com> Date: Fri, 25 Mar 2022 10:51:11 +0100 Subject: [PATCH 2/3] Update 15-creer-des-graphiques-et-cartes-pour-le-web.Rmd correction orthographique cartes complexes --- 15-creer-des-graphiques-et-cartes-pour-le-web.Rmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/15-creer-des-graphiques-et-cartes-pour-le-web.Rmd b/15-creer-des-graphiques-et-cartes-pour-le-web.Rmd index 7d951e9..1772463 100644 --- a/15-creer-des-graphiques-et-cartes-pour-le-web.Rmd +++ b/15-creer-des-graphiques-et-cartes-pour-le-web.Rmd @@ -207,9 +207,9 @@ Le label avec un texte affichera celui ci au passage de la souris. Si on fait ap - Création de carte plus complexes (plusieurs éléments) -Pour des cartes plus complexe ou l’icone ou la couleur depend d’une variable, voici la procedure. +Pour des cartes plus complexes où l’icone ou la couleur dependent d’une variable, il y a quelques étapes supplémentaires. +Dans l'exemple suivant, il s'agit de faire varier la couleur en fonction de la magnitude des tremblements de terre. -Pour une variable quantitative nous allons faire varier la couleurs. Dans l'exemple ci dessous nous prenons des magnitudes de tremblements de terres. ``` # sélection des 20 premiers tremblement de terre From 9a1848248b209f975025503acfae9c50589b9c36 Mon Sep 17 00:00:00 2001 From: MarlyseCLEMENT <96878048+MarlyseCLEMENT@users.noreply.github.com> Date: Fri, 25 Mar 2022 10:55:12 +0100 Subject: [PATCH 3/3] Update 15-creer-des-graphiques-et-cartes-pour-le-web.Rmd correction df.20 en tremblement_20 --- 15-creer-des-graphiques-et-cartes-pour-le-web.Rmd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/15-creer-des-graphiques-et-cartes-pour-le-web.Rmd b/15-creer-des-graphiques-et-cartes-pour-le-web.Rmd index 1772463..62e4301 100644 --- a/15-creer-des-graphiques-et-cartes-pour-le-web.Rmd +++ b/15-creer-des-graphiques-et-cartes-pour-le-web.Rmd @@ -213,7 +213,7 @@ Dans l'exemple suivant, il s'agit de faire varier la couleur en fonction de la m ``` # sélection des 20 premiers tremblement de terre -df.20 <- quakes[1:20,] +tremblement_20 <- quakes[1:20,] # création d’une fonction qui détermine la couleur en fonction de l’intensité getColor <- function(quakes) { @@ -232,11 +232,11 @@ icons <- awesomeIcons( icon = 'ios-close', iconColor = 'black', library = 'ion', - markerColor = getColor(df.20) + markerColor = getColor(tremblement_20) ) #creation de la carte, -leaflet(df.20) %>% addTiles() %>% +leaflet(tremblement_20) %>% addTiles() %>% addAwesomeMarkers(~long, ~lat, icon=icons, label=~as.character(mag)) ```