Zacznij terazZacznij za darmo

Mapa choropletyczna

Teraz, gdy wiesz już, jak rysować wielokąty, czas umieścić je na mapie. Pamiętaj: wywołanie ggplot() zastępujesz wywołaniem ggmap(), a oryginalne wywołanie ggplot() przenosi się do argumentu base_layer(). Następnie dodajesz warstwę wielokątów jak zwykle:

ggmap(corvallis_map_bw,
      base_layer = ggplot(ward_sales,
                          aes(lon, lat))) +
  geom_polygon(aes(group = group, fill = ward))

Wypróbuj to teraz w konsoli!

Coś jest nie tak. Okręgi 1, 3 i 8 wyglądają dziwnie i niepoprawnie. Co się stało? Część granic okręgów wykracza poza obszar mapy. Domyślnie ggmap() usuwa dane spoza zakresu mapy przed rysowaniem, przez co niektóre fragmenty granic wielokątów są pomijane – a łącząc pozostałe punkty, otrzymujesz niepoprawne kształty.

Nie martw się, jest na to rozwiązanie: ggmap() oferuje argumenty pozwalające kontrolować to zachowanie. Argumenty extent = "normal" oraz maprange = FALSE wymuszają użycie zakresu danych – zamiast zakresu mapy – do wyznaczenia granic wykresu.

To ćwiczenie jest częścią kursu

Wizualizacja danych geoprzestrzennych w R

Zobacz kurs

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Fix the polygon cropping
ggmap(corvallis_map_bw, 
      base_layer = ggplot(ward_sales, aes(lon, lat))) +
  geom_polygon(aes(group = group, fill = ward))
Edytuj i uruchom kod