代码之家  ›  专栏  ›  技术社区  ›  mmoore

用gemo_sf,ggplot标记多边形

  •  0
  • mmoore  · 技术社区  · 6 年前

    我正在尝试使用ggplot2从空间特征数据帧标记多边形。我想复制描述 here 在标题下,“下载一些边界数据:州/县/huc”

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

    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,dots)中的错误:
    评估错误: .x 不是向量(闭包)。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Chris    6 年前

    无法自己复制错误。可能你没有 purrr 已加载包等等 map 正在选择不同的功能。

    我想说,因为你的目标是在 geom_text ,只需使用 st_centroid(ss_shape) 就是这样。它会返回你的质心 points 你可以直接传给 几何文字 :

    EG)

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