Bagaimana cara membuat peta choropleth yang menarik di R?

18

Saya telah bereksperimen dengan teknik pemetaan choropleth di R, setelah menuai manfaat dari ggplot2 untuk membuat grafik yang indah dalam paket analisis data yang kuat.

Dalam hal pemetaan, saya gagal menghasilkan hasil yang sebanding dengan yang saya dapatkan secara rutin dari QGIS. Menggunakan data aliran di Sheffield (data yang sepenuhnya dapat direplikasi dan file .qgs di sini ), QGIS dengan mudah menghasilkan yang berikut:

Gambar QGIS

Yang terbaik yang bisa saya hasilkan menggunakan R (menggunakan kode yang dijelaskan di sini ) adalah dua peta ini, yang pertama menggunakan GISTools, yang kedua menggunakan ggplot2:

GISTools choropleth ggplot2 choro

Bagi saya, opsi ggplot2 tampaknya jauh lebih menarik, jika saja saya bisa menyelesaikan masalah pada baris yang salah (mungkin masalah dengan perintah fortify (), atau tidak membaca di shapefile menggunakan readOGR () yang dijelaskan di sini .)

Jadi pertanyaannya adalah 2 kali lipat: apakah opsi ggplot2 solusi pemetaan choropleth terbaik di R dan, jika demikian, bagaimana saya bisa menyelesaikan masalah garis putih yang salah?

Kode yang dapat ditiru untuk mengetahui apa yang telah saya lakukan ada di sini .

Sunting - Sejak dibuat opsi output choropleth () lebih menarik:

Rplot baru

Keburukan opsi ini dapat dikurangi dengan mengekspor pada resolusi yang lebih tinggi dan menghapus legenda ( legenda R lainnya tersedia). Masih tidak berhasil mengubah ketebalan garis tetapi semakin baik! Garis merah mewakili aliran ke zona yang mempekerjakan> 5000 orang.

RobinLovelace
sumber
1
Peta R pertama akan terlihat jauh lebih baik jika Anda mengurangi ukuran garis poligon (dan mungkin membuatnya benar-benar transparan seperti pada contoh QGIS pertama).
Andy W
3
Setuju, tapi saya tidak tahu bagaimana melakukan ini - kode yang saya gunakan adalah "choropleth (oas, v = oas $ to, shades)". Mencari dokumentasi untuk menghapus baris, tetapi tidak menemukan apa pun: cran.r-project.org/web/packages/GISTools/GISTools.pdf
RobinLovelace
1
@RobinLovelace Jika Anda memasukkan kode R Anda, kami pasti dapat membantu Anda dengan masalah ini, tetapi tanpa contoh yang dapat direproduksi, tidaklah mudah untuk menunjukkan dengan tepat masalah tersebut. Saya sangat menghargai upaya yang telah Anda lakukan untuk memasang tangkapan layar (berguna), tetapi gambar hanyalah lapisan gula yang harus dikirim di atas kue kode sumber.
SlowLearner
Silakan lihat kode yang dapat direproduksi yang terkandung dalam folder .zip ini, sebagaimana dinyatakan di atas: dl.dropbox.com/u/15008199/Rflows-simple.zip
RobinLovelace
@RobinLovelace Terima kasih, menarik, telah mengunduh
SlowLearner

Jawaban:

7

Ada beberapa sumber yang bagus tentang topik yang sangat menarik ini, termasuk:

Dari Revolusi:

Tantangan Choropleth Map R

Hasil Tantangan Choropleth

Dari Stack Overflow.se:

Mengembangkan Peta Tematik Geografis dengan R

Ada beberapa contoh peta choropleth yang sangat baik dan kode R yang terkait, termasuk favorit saya (yaitu peta terlampir) menggunakan ggplot2. Seharusnya relatif lurus ke depan untuk memasukkan set data Anda sendiri ke dalam salah satu contoh skrip.

Kode R untuk peta ini tersedia dari Ini adalah Ruang Hijau

Harun
sumber
Banyak terima kasih telah menandai sumber daya yang luar biasa ini dan untuk menunjukkan peta pengangguran AS. Kehilangan legenda sekalipun! Adakah saran bagaimana menerjemahkan sumber-sumber ini ke dalam peta Sheffield? Cuplikan kode untuk memilah upaya saya yang gagal pada pemetaan choropleth menggunakan ggplot2 dan data yang saya berikan dari Sheffield sangat dihargai!
RobinLovelace
@RobinLoveLace Saya senang tautannya bermanfaat bagi Anda. Anda seharusnya tidak memiliki masalah memasukkan dataset Anda sendiri ke dalam banyak skrip sampel, meskipun Anda mungkin harus menyingsingkan lengan baju Anda dan melakukan sedikit trial and error pada paket tertentu. Sayangnya, saya tidak punya waktu sekarang untuk melakukannya untuk Anda - maaf!
Aaron
1
Saya akan bermain dan mudah-mudahan menambahkan suntingan lebih lanjut dan kode yang dapat ditiru ketika peta membaik.
RobinLovelace