如何找到多边形内的所有点来创建等值线图?

如何解决如何找到多边形内的所有点来创建等值线图?

我是 R 新手,在处理两个 sp 数据帧时遇到了一些麻烦。

数据框:

  • 'violence'(这是一个包含暴力事件实例的数据框,按经度和纬度列出)
  • 'DRC_GEO2'(它是包含 DRC 行政边界的 shapefile)。

我想计算由 DRC_GEO2 数据框多边形定义的每个行政区域的暴力事件数量。这篇文章 (https://gis.stackexchange.com/questions/110117/counting-number-of-points-in-polygon-using-r/110246#110246?newreg=5bfe0d571b8241158bac704f188cf026) 有助于概述类似的问题。但是,我不想记录来自“暴力”的数据点样本,我想要数据框中的所有记录实例。

我已经尝试了下面的代码,它确实输出了正确的实例数量,但是,它根据最大的管理单位('ADM1_FR')对它们进行分类,但我希望它按最小的管理单位('ADM2_FR')进行分类).

res

表(res$NAME_1)

返回的是: enter image description here

最终,我想要一个关于原始 shapefile 'DRC_GEO2' 上的暴力实例数量的等值线图。如何将每个行政区域的出现次数添加到数据中以制作区域分布图?

解决方法

在没有 MRE 的情况下很难分享准确的答案(请参阅 How to make a great R reproducible example)。

话虽如此,这里是您如何实现这一目标的一般答案。如果您能够共享数据,我很乐意进行更具体的编辑。

library(ggplot2)

# Count points in each ADM2_FR
res <- table(over(violence_point,DRC_GEO2[,"ADM2_FR"]))
names(res) <- c("ADM2_FR","Violence_Count")

# Merge counts with original data
dat <- merge(DRC_GEO2,res,by = "ADM2_FR",all.x = TRUE)

# Plot choropleth 
ggplot() +
  geom_polygon(data = dat,aes(fill = Violence_Count,x = long,y = lat,group = group)) +
  theme_void() +
  coord_map()

请看这里:https://www.r-graph-gallery.com/327-chloropleth-map-from-geojson-with-ggplot2.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?