Koropletskarta
Nu när du förstår hur man ritar polygoner, är det dags att lägga dem på en karta. Kom ihåg att du ersätter ggplot()-anropet med ett ggmap()-anrop, och det ursprungliga ggplot()-anropet flyttas till argumentet base_layer(). Sedan lägger du till ditt polygonlager som vanligt:
ggmap(corvallis_map_bw,
base_layer = ggplot(ward_sales,
aes(lon, lat))) +
geom_polygon(aes(group = group, fill = ward))
Testa det i konsolen nu!
Oj, något ser fel ut. Ward 1, 3 och 8 ser taggiga och felaktiga ut. Vad har hänt? En del av wardgränserna sträcker sig utanför kartans gränser. På grund av standardinställningarna i ggmap() tas data utanför kartan bort innan plottning, vilket gör att vissa polygongränser försvinner – och när de återstående punkterna kopplas ihop blir formerna fel.
Vara lugn, det finns en lösning: ggmap() erbjuder argument för att styra det här beteendet. Argumenten extent = "normal" och maprange = FALSE tvingar plotten att använda dataintervallet i stället för kartintervallet när plottningens gränser definieras.
Den här övningen är en del av kursen
Visualisering av geospatial data i R
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Fix the polygon cropping
ggmap(corvallis_map_bw,
base_layer = ggplot(ward_sales, aes(lon, lat))) +
geom_polygon(aes(group = group, fill = ward))