r - 用 geom_sf、ggplot 标记多边形
问题描述
我正在尝试使用 ggplot2 从空间特征数据框中标记多边形。我试图在“下载一些边界数据:州/县/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
不是向量(闭包)。
解决方案
自己无法重现错误。可能您没有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))
推荐阅读
- operating-system - 每个系统调用是否创建一个进程?
- matplotlib - 如何绘制多个相互堆叠的图形
- java - 加载序列化的 Ecore 模型作为 XMI 无法正确加载容器
- c - C中具有不同数据类型的键值
- .net-core - 在本地网络中运行 .net core web api
- python - 检查是否在 Python 中定义了要避免的变量?
- java - ProgressBar 崩溃活动(空对象引用/或不可见)
- html - 在保持切换菜单(汉堡)的同时更改导航栏背景颜色
- node.js - 如何在嵌套中间件中设置 cookie 和使用上下文
- azure - 具有项目依赖项的项目的 Helm 安装失败