-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update 15-creer-des-graphiques-et-cartes-pour-le-web.Rmd #36
Open
MarlyseCLEMENT
wants to merge
3
commits into
MTES-MCT:master
Choose a base branch
from
MarlyseCLEMENT:patch-1
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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 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. | ||
|
||
|
||
``` | ||
# sélection des 20 premiers tremblement de terre | ||
tremblement_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(tremblement_20) | ||
) | ||
|
||
#creation de la carte, | ||
leaflet(tremblement_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. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Voir avec @jengelaere pour les précisions sur le ~ |
||
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. | ||
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Je ne sais pas si c'est utile de le laisser l'information sur le proxy.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Non, je l'enlèverai aussi.