使用geom_sf,ggplot标记多边形

时间:2018-08-23 19:53:48

标签: r ggplot2 label mutate sf

我正在尝试使用ggplot2从空间要素数据框中标记多边形。我正在尝试在标题“下载一些边界数据:州/县/ HUC”下复制说明here

这是我的代码,试图获取lat和lon值以用于geom_text()中的标签位置:

selected_sites <- arc.open(survey_sites)
ss <- arc.select(selected_sites)
ss_shape <- arc.data2sf(ss)
refcode_list <- ss$refcode

ss_shape <- ss_shape %>%
  mutate(lon=map(geometry, ~st_centroid(.x)[[1]]),
         lat=map(geometry, ~st_centroid(.x)[[2]]))

我一直收到以下错误:

  

mutate_impl(.data,点)中的错误:
        评估错误:.x不是向量(关闭)。

1 个答案:

答案 0 :(得分:0)

我自己无法重现该错误。可能您没有加载purrr软件包,因此map正在使用其他函数。

我要说的是,由于您的目标是在geom_text中绘制标签,因此简单地使用st_centroid(ss_shape)是可行的方法。它将质心返回为points,您可以将其直接传递给geom_text

例如)

ss_centroids <- st_centroid(ss_shape)
ggplot()+ 
  geom_text(data=ss_centroids,aes(x=X,y=Y,label=name))