Jak stworzyć atrakcyjną mapę choropleth w R?

18

Eksperymentowałem z technikami mapowania choropleth w R, czerpiąc korzyści z ggplot2 do tworzenia pięknych wykresów w potężnym pakiecie analizy danych.

Jeśli chodzi o mapowanie, nie udało mi się uzyskać wyników porównywalnych z tymi, które rutynowo otrzymuję z QGIS. Wykorzystując dane o przepływie w Sheffield (w pełni powtarzalnych danych i .qgs złożyć tutaj ), QGIS łatwo wytwarzać, co następuje:

Obraz QGIS

Najlepsze, jakie mogłem stworzyć przy użyciu R (używając kodu opisanego tutaj ), to dwie mapy, pierwsza przy użyciu GISTools, druga przy użyciu ggplot2:

Choropleth GISTools ggplot2 choro

Dla mnie opcja ggplot2 wydaje się o wiele bardziej atrakcyjna, gdybym tylko mogła rozwiązać problem z wadliwymi liniami (prawdopodobnie problem z poleceniem fortify () lub brak odczytu w plikach kształtu za pomocą opisanego tutaj readOGR ()) .

Pytanie jest więc 2-krotnie: czy opcja ggplot2 jest najlepszym rozwiązaniem do mapowania choropleth w R, a jeśli tak, to w jaki sposób mogę rozwiązać problem wadliwych białych linii?

Replikowalny kod, aby dowiedzieć się, co zrobiłem, jest tutaj .

Edycja - Od kiedy opcja wyjścia choropleth () jest bardziej atrakcyjna:

Nowy Rplot

Brzydotę tej opcji można zmniejszyć, eksportując w wyższej rozdzielczości i usuwając legendę ( dostępne są inne legendy R. ). Wciąż nie udało się zmienić grubości linii, ale jest coraz lepiej! Czerwone linie oznaczają przepływy do stref zatrudniających> 5000 osób.

RobinLovelace
źródło
1
Pierwsza mapa R wyglądałaby o wiele ładniej, gdybyś zmniejszył rozmiar konturów wielokąta (i być może uczyniłeś je całkowicie przezroczystymi, jak w pierwszym przykładzie QGIS).
Andy W
3
Zgadzam się, ale nie wiem, jak to zrobić - użyłem kodu „choropleth (oas, v = oas $ to, shades)”. Szukałem
RobinLovelace
1
@RobinLovelace Jeśli podasz kod R, z pewnością możemy Ci pomóc w rozwiązaniu tych problemów, ale bez powtarzalnego przykładu nie jest łatwo zlokalizować problemy. Doceniam wysiłek włożony w przygotowanie (użytecznych) zrzutów ekranu, ale obrazy to tylko lukier, który powinien zostać dostarczony na wierzchu kodu źródłowego.
SlowLearner,
Proszę zobaczyć odtwarzalny kod zawarty w tym folderze .zip, jak podano powyżej: dl.dropbox.com/u/15008199/Rflows-simple.zip
RobinLovelace
@RobinLovelace Dzięki, interesujące,
pobrałem

Odpowiedzi:

7

Istnieje kilka świetnych zasobów na ten właśnie bardzo interesujący temat, w tym:

Z obrotów:

Choropleth Map R Challenge

Wyniki wyzwania Choropleth

Ze stosu Overflow.se:

Opracowywanie geograficznych map tematycznych za pomocą R.

Istnieją doskonałe przykłady map choropleth i związanych z nimi kodów R, w tym mojej ulubionej (tj. Załączonej mapy) za pomocą ggplot2. Wstawienie własnego zestawu danych do jednego z przykładów skryptu powinno być stosunkowo proste.

Kod R tej mapy dostępny z To jest zielony pokój

Aaron
źródło
Ogromne podziękowania za oznaczenie tych doskonałych zasobów i pokazanie mapy bezrobocia w USA. Brakuje jednak legendy! Wszelkie sugestie, jak przetłumaczyć te zasoby na mapy Sheffield? Fragmenty kodu rozwiązujące moją nieudaną próbę mapowania choropleth przy użyciu ggplot2 i dane, które dostarczyłem z Sheffield, bardzo doceniam!
RobinLovelace,
@RobinLoveLace Cieszę się, że linki były dla Ciebie przydatne. Nie powinieneś mieć problemu z podłączeniem własnego zestawu danych do wielu przykładowych skryptów, chociaż być może będziesz musiał zwinąć rękawy i wykonać trochę prób i błędów na konkretnych pakietach. Niestety nie mam teraz czasu, aby to dla Ciebie zrobić - przepraszam!
Aaron
1
Będę grać i mam nadzieję, że dodam kolejne zmiany i powtarzalny kod, gdy mapa się poprawi.
RobinLovelace,