Comment créer une carte choroplèthe attrayante en R?

18

J'ai expérimenté des techniques de cartographie choroplèthes dans R, après avoir récolté les avantages de ggplot2 pour créer de beaux graphiques dans un puissant package d'analyse de données.

En ce qui concerne la cartographie, je n'ai pas réussi à produire des résultats comparables à ceux que j'obtiens régulièrement de QGIS. En utilisant les données de flux dans Sheffield (données entièrement réplicables et fichier .qgs ici ), QGIS a facilement produit les éléments suivants:

Image QGIS

Le mieux que j'ai pu produire en utilisant R (en utilisant le code décrit ici ) était ces deux cartes, la première utilisant GISTools, la seconde utilisant ggplot2:

GISTools choropleth ggplot2 choro

Pour moi, l'option ggplot2 semble beaucoup plus intéressante, si seulement je pouvais résoudre le problème des lignes défectueuses (probablement un problème avec la commande fortify (), ou ne pas lire les fichiers de formes en utilisant readOGR () décrit ici .)

La question est donc double: l'option ggplot2 est-elle la meilleure solution de cartographie choroplèthe dans R et, si oui, comment puis-je résoudre le problème des lignes blanches défectueuses?

Le code reproductible pour découvrir ce que j'ai fait est ici .

Edit - Depuis que l'option de sortie choropleth () est plus attrayante:

Nouveau Rplot

La laideur de cette option peut être réduite en exportant à une résolution plus élevée et en supprimant la légende (d' autres légendes R sont disponibles). Toujours pas réussi à changer l'épaisseur du trait mais ça va mieux! Les lignes rouges représentent les flux vers les zones qui emploient> 5000 personnes.

RobinLovelace
la source
1
La première carte R serait beaucoup plus agréable si vous réduisiez la taille des contours du polygone (et les rendiez peut-être complètement transparents comme dans le premier exemple QGIS).
Andy W
3
D'accord, mais je ne sais pas comment faire - le code que j'ai utilisé était "choroplèth (oas, v = oas $ to, shades)". Recherche de documentation pour supprimer des lignes, mais rien trouvé: cran.r-project.org/web/packages/GISTools/GISTools.pdf
RobinLovelace
1
@RobinLovelace Si vous mettez votre code R en place, nous pouvons sûrement vous aider avec ces problèmes, mais sans un exemple reproductible, il n'est pas facile d'identifier les problèmes. J'apprécie l'effort que vous avez fait pour mettre en place les captures d'écran (utiles), mais les images ne sont que le glaçage qui devrait être livré en plus du gâteau du code source.
SlowLearner
Veuillez consulter le code reproductible contenu dans ce dossier .zip, comme indiqué ci-dessus: dl.dropbox.com/u/15008199/Rflows-simple.zip
RobinLovelace
@RobinLovelace Merci, intéressant, d'avoir téléchargé
SlowLearner

Réponses:

7

Il existe d'excellentes ressources sur ce sujet très intéressant, notamment:

De Révolutions:

Choropleth Map R Challenge

Résultats du Choropleth Challenge

Depuis Stack Overflow.se:

Développement de cartes thématiques géographiques avec R

Il existe d'excellents exemples de cartes choroplèthes et de leur code R associé, y compris ma carte préférée (c'est-à-dire la carte jointe) utilisant ggplot2. Il devrait être relativement simple d'insérer votre propre ensemble de données dans l'un des exemples de script.

Code R pour cette carte disponible sur This is the Green Room

Aaron
la source
Merci beaucoup d'avoir signalé ces excellentes ressources et d'avoir montré la carte du chômage aux États-Unis. Manquer une légende cependant! Des suggestions sur la façon de traduire ces ressources en cartes de Sheffield? Des extraits de code pour trier ma tentative échouée de mappage de choroplèth en utilisant ggplot2 et les données que j'ai fournies de Sheffield sont très appréciées!
RobinLovelace
@RobinLoveLace Je suis content que les liens vous aient été utiles. Vous ne devriez avoir aucun problème à brancher votre propre jeu de données dans les nombreux exemples de scripts, même si vous devrez peut-être retrousser vos manches et faire quelques essais et erreurs sur les packages spécifiques. Malheureusement, je n'ai pas le temps maintenant de le faire pour vous - désolé!
Aaron
1
J'aurai un jeu et j'espère ajouter d'autres modifications et du code reproductible lorsque la carte s'améliorera.
RobinLovelace