Kom igångKom igång gratis

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

Visa kurs

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))
Redigera och kör kod