首页 > 解决方案 > 密度热图 - 我认为奇怪的比例和显示问题?

问题描述

我正在尝试对洛杉矶的逮捕相关数据进行一些映射(使用此数据集:https ://data.lacity.org/A-Safe-City/Arrest-Data-from-2010-to-Present/yru6- 6re4 )。

当我运行如下所示的代码时,我收到以下错误:

Warning message: Removed 11,578 rows containing non-finite values (stat_density2d). 

因此,这意味着在 11,808 个数据点中,只有 230 个显示在地图上。考虑到我只放大了洛杉矶体育馆周围的两个或三个街区半径,这似乎是合理的。这意味着,2017 年,该地区有 230 人被捕。好的。

但是,当我绘制它时,我得到的密度范围从 500 一直到 2,500(如下所示)。

这是 location2017.df 的小标题:

> as_tibble(location2017.df)
# A tibble: 11,808 x 3
     lon   lat Frequency
   <dbl> <dbl>     <int>
 1 -118.  33.7         5
 2 -118.  33.7         2
 3 -118.  33.7         1
 4 -118.  33.7         1
 5 -118.  33.7         4
 6 -118.  33.7         2
 7 -118.  33.7         2
 8 -118.  33.7         1
 9 -118.  33.7         1
10 -118.  33.7         4
# … with 11,798 more rows

这是我用来设置所有内容的代码。


这是绘图输出:

在此处输入图像描述

正如你所看到的,它已经完全“被淘汰”了……我觉得奇怪的是,根据假设的 238 人总逮捕,整个地图上有紫色色调。同样,密度图也很奇怪……为什么在逮捕人数有限的情况下会从 500 人增加到 2,500 人?

所以,最后,有两个问题:

1. 整个地图呈现紫色色调是否正确?

2. 为什么地图一侧的密度比例与仅绘制 238 次逮捕的情况相同?

非常感谢任何关于如何使这个情节看起来/阅读更好的想法/建议/更正。

编辑

决定快速输出一个与上面相同信息的geom_point。这是情节:

在此处输入图像描述

如您所见,第一张图片中的“紫色色调”是有道理的。整个区域的逮捕数量有限,热图的黄色部分所在的区域很大。

那么,有没有办法在更少的逮捕和更多的逮捕之间形成更强的对比,以限制当前覆盖地图的色调?

标签: rggplot2heatmapggmap

解决方案


您的第二个问题可以帮助回答您的第一个问题:

ggplot2 在从数据集中选择它应该绘制的元素之前计算比例范围,所以它看到你有一个从 500 到 2500 的值范围 - 为什么会这样?因为你的数据。请注意,当您放大非常特定的区域时,您的long lat坐标值非常宽(即)。33.7坐标可以具有不同程度的准确度,例如,如果您在 时逮捕了一些人,在 时逮捕了33.72515更多人33.71235,那么您的数字会更准确地描述变焦范围内的实际犯罪数量。

这也解释了为什么您在整个地块上都有紫色色调 - 您的数据表明在这些区域发生了超过 500 起犯罪,即使它实际上可能是更具体的街道/小巷。

你能做什么?

  1. 如果您预处理坐标以减少小数点后的一些数字 - 您应该尝试使用原始坐标数据。
  2. 查看您的数据集并查找是否有犯罪地点的描述(通常在 gov 数据库中,每个条目都有大量输入数据),然后您可以尝试找到为每个条目指示的街道的确切坐标犯罪,并以这种方式获得更准确的坐标 - 这将需要一些工作,并且取决于您是否拥有数据集中每一行的街道名称。

  3. 绘制更缩小的地图视图。

这是我过去参与的一个项目的示例,我在华盛顿特区创建了一个停车引用图。如您所见,与您的设置相比,我从数据集中获得的准确度非常高(小数点后 4),您可以看到这在密度图中是如何反映的:

在此处输入图像描述


推荐阅读