Come creare un'attraente mappa coropletica in R?


18

Ho sperimentato le tecniche di mappatura dei coropleti in R, avendo raccolto i benefici di ggplot2 per la creazione di splendidi grafici all'interno di un potente pacchetto di analisi dei dati.

Quando si tratta di mappatura, non sono riuscito a produrre risultati paragonabili a quelli che ottengo abitualmente da QGIS. Utilizzando i dati del flusso in Sheffield (dati completamente replicabili e file .qgs qui ), QGIS ha prodotto facilmente quanto segue:

Immagine QGIS

I migliori che ho potuto produrre usando R (usando il codice descritto qui ) sono state queste due mappe, la prima con GISTools, la seconda con ggplot2:

Coropleto di GISTools ggplot2 choro

Per me, l'opzione ggplot2 sembra molto più attraente, se solo potessi risolvere il problema delle linee difettose (probabilmente un problema con il comando fortify (), o non leggere nei file di forma usando readOGR () qui descritto .)

Quindi la domanda è duplice: l'opzione ggplot2 è la migliore soluzione di mappatura coropletica in R e, in tal caso, come posso risolvere il problema delle linee bianche difettose?

Il codice replicabile per scoprire cosa ho fatto è qui .

Modifica: dall'opzione di output di choropleth () resa più attraente:

Nuovo Rplot

La bruttezza di questa opzione può essere ridotta esportando a una risoluzione più elevata e rimuovendo la legenda ( sono disponibili altre legende R ). Non è ancora riuscito a cambiare lo spessore della linea ma sta migliorando! Le linee rosse rappresentano i flussi verso le zone che impiegano> 5000 persone.


1
La prima mappa R sembrerebbe molto più bella se riduci la dimensione dei contorni poligonali (e forse li rendi completamente trasparenti come nel primo esempio di QGIS).
Andy W,

3
D'accordo, ma non so come farlo - il codice che ho usato era "coropleth (oas, v = oas $ to, shades)". Ho
RobinLovelace

1
@RobinLovelace Se si inserisce il codice R, possiamo sicuramente aiutarti con questi problemi, ma senza un esempio riproducibile non è facile individuare i problemi. Apprezzo lo sforzo che hai fatto per mettere su (utili) schermate, ma le immagini sono solo la ciliegina sulla torta che dovrebbe essere fornita in cima alla torta del codice sorgente.
SlowLearner il

Vedere il codice riproducibile contenuto in questa cartella .zip, come indicato sopra: dl.dropbox.com/u/15008199/Rflows-simple.zip
RobinLovelace il

@RobinLovelace Grazie, interessante, ho scaricato
SlowLearner il

Risposte:


7

Ci sono alcune grandi risorse su esattamente questo argomento molto interessante, tra cui:

Dalle rivoluzioni:

Choropleth Map R Challenge

Risultati della sfida coropletica

Da Stack Overflow.se:

Sviluppo di mappe tematiche geografiche con R

Ci sono eccellenti esempi di mappe coropletiche e il loro codice R associato, incluso il mio preferito (cioè la mappa allegata) usando ggplot2. Dovrebbe essere relativamente semplice inserire il proprio set di dati in uno degli esempi di script.

Il codice R per questa mappa è disponibile da This is the Green Room


Mille grazie per aver segnalato queste eccellenti risorse e per aver mostrato la mappa della disoccupazione degli Stati Uniti. Manca una leggenda però! Qualche suggerimento su come tradurre queste risorse in mappe di Sheffield? Frammenti di codice per risolvere il mio tentativo fallito di mappatura della coropleth usando ggplot2 e i dati che ho fornito a Sheffield sono molto apprezzati!
RobinLovelace,

@RobinLoveLace Sono contento che i link ti siano stati utili. Non dovresti avere problemi a collegare il tuo set di dati nei molti script di esempio, anche se potresti dover rimboccarti le maniche e fare un po 'di tentativi ed errori sui pacchetti specifici. Purtroppo non ho il tempo di farlo per te - scusa!
Aaron

1
Avrò un gioco e spero di aggiungere ulteriori modifiche e codice replicabile quando la mappa migliora.
RobinLovelace,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.