首页 > 解决方案 > 用 ggplot 映射州边界

问题描述

我正在尝试创建具有县和州边界的ggplot地图。我能够生成带有县边界的地图,但是当添加以下行来获取州边界时,我遇到了一个问题。代码复制如下。

ggplot2::geom_polygon(aes(x= long, y = lat, group = group), fill = NA, color = "black",

                      data = filter(us_map(), abbr %in% states_of_interest))

当我运行此代码时,我收到错误:

“FUN 中的错误(X[[i]], ...)

找不到对象'long'”。我对us_map包相对不熟悉,但有人告诉我在纬度使用long for x和y会正常工作。

我试过添加命令

“继承.aes = FALSE”

根据其他堆栈溢出帖子的建议,但它没有解决错误。

标签: rggplot2mapping

解决方案


us_map函数返回一个带有xy用于纬度/经度的对象。您可以分别存储县和州,然后将它们都添加ggplot为多边形。

library(usmap)

states_of_interest <- c("CA","OR", "WA")

counties <- us_map(regions = "counties", include = states_of_interest)
states <- us_map(include = states_of_interest)

ggplot() +
  geom_polygon(data = counties, aes(x = x, y = y, group = group), fill = NA, color = "black") +
  geom_polygon(data = states, aes(x = x, y = y, group = group), fill = NA, color = "red") +
  coord_equal()

在此处输入图像描述


推荐阅读