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
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))