6.1 Polygon Maps

The simplest approach to mapping is using geom_polygon(). This forms bounderies around regions.

library(ggplot2)
mi_counties <- map_data("county", "michigan") %>% 
  select(lon = long, lat, group, id = subregion)
head(mi_counties)
##         lon      lat group     id
## 1 -83.88675 44.85686     1 alcona
## 2 -83.36536 44.86832     1 alcona
## 3 -83.36536 44.86832     1 alcona
## 4 -83.33098 44.83968     1 alcona
## 5 -83.30806 44.80530     1 alcona
## 6 -83.30233 44.77665     1 alcona

In this data set we have four variables: - lat: Latitude of the vertex (as measured by horizontal paths) - long: Longitude of the vertex (as measured by vertical paths) - id: name of the region - group: unique identifier for contiguous areas within a region

ggplot(mi_counties, aes(lon, lat)) + 
  geom_point(size = .25, show.legend = FALSE) +
  coord_quickmap()

ggplot(mi_counties, aes(lon, lat, group = group)) +
  geom_polygon(fill = "white", colour = "grey50") + 
  coord_quickmap()

In this plot, coord_quickmap() is used to adjust the axes to ensure longitude and latitude are rendered on the same scale

For a more advanced use of ggplot2 for mapping, we’ll see the use of geom_sf() and coord_sf() to handle spatial data specified in simple features format.