« Programmer en R/Représenter une carte » : différence entre les versions

Contenu supprimé Contenu ajouté
m Formatage, ajout de code
DannyS712 (discussion | contributions)
m <source> -> <syntaxhighlight> (phab:T237267)
Ligne 6 :
On peut télécharger les contours des départements français sur le site data.gouv.fr<ref>https://www.data.gouv.fr/fr/datasets/contours-des-departements-francais-issus-d-openstreetmap/</ref>. On peut importer les données au format Shapefile grâce à la fonction <code>readOGR()</code> de la librairie <code>rgdal</code> :
 
<sourcesyntaxhighlight lang="rsplus">
library(rgdal)
spdf_departement <- readOGR(
Ligne 12 :
layer= "departements-20140306-100m"
)
</syntaxhighlight>
</source>
 
On obtient alors un <code>SpatialPolygonDataFrame</code>.
Ligne 20 :
Pour visualiser uniquement, les départements de la métropole, on peut sélectionner les départements dont le code Insee ne prend que deux caractères. On utilise la fonction <code>str_length()</code> de la librairie <code>stringr</code>. Pour clarifier le code, on utilise l'opérateur <code>%>%</code> de la librairie <code>magrittr</code>. Cet opérateur permet d'enchaîner les fonctions les unes à la suite des autres.
 
<sourcesyntaxhighlight lang="rsplus">
library(stringr)
library(magrittr)
spdf_departement %>%
subset(. , str_length(code_insee) == 2)
</syntaxhighlight>
</source>
 
On peut ensuite créer une première visualisation avec la fonction <code>plot()</code>.
 
<sourcesyntaxhighlight lang="rsplus">
library(stringr)
library(magrittr)
Ligne 35 :
subset(. , str_length(code_insee) == 2) %>%
plot()
</syntaxhighlight>
</source>
 
=== Visualisation avec la librairie ggplot2 ===
Ligne 41 :
Pour réaliser la carte avec la librairie <code>ggplot2</code>, il faut au préalable transformer le <code>SpatialPolygonDataFrame</code> en <code>data frame</code> à l'aide de la fonction <code>fortify</code>. Pour réaliser cette opération, il est nécessaire de charger les paquets rgeos, maptools et ggplot2.
 
<sourcesyntaxhighlight lang="rsplus>
library(ggplot2)
library(rgeos)
library(maptools)
df_departement <- fortify(spdf_departement, region = "code_insee")
</syntaxhighlight>
</source>
 
Comme dans l'exemple plus haut, on peut filtrer les départements de France métropolitaine avec la fonction str_length() du paquet stringr et la fonction filter du paquet dplyr.
 
<sourcesyntaxhighlight lang="rsplus>
library(dplyr)
df_departement %>%
filter(str_length(id) == 2)
</syntaxhighlight>
</source>
 
On réalise ensuite la carte avec <code>ggplot()</code> :
 
<sourcesyntaxhighlight lang="rsplus>
library(dplyr)
df_departement %>%
Ligne 70 :
axis.title = element_blank()) +
labs(title = "Carte des départements de France métropolitainee en 2014")
</syntaxhighlight>
</source>
 
=== Visualisation interactive avec Leaflet ===
Ligne 78 :
Pour cela, il faut utiliser le SpatialPolygonDataFrame, celui que nous avons nommé <code>spdf_departement</code>. La syntaxe est très simple. La fonction <code>addTiles()</code> permet d'ajouter un fond de carte. La fonction <code>addPolygons</code> permet d'ajouter les polygones.
 
<sourcesyntaxhighlight lang="rsplus">
library(leaflet)
library(stringr)
Ligne 87 :
addTiles() %>%
addPolygons()
</syntaxhighlight>
</source>
 
== Notes et références ==