密度热图 - 我认为奇怪的比例和显示问题?

Density Heatmap - odd scale and display issues, I think?

我正在尝试对洛杉矶的 arrest-related 数据进行一些映射(使用此数据集: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 个显示在地图上。这似乎是合理的,考虑到我只放大了洛杉矶体育馆周围的两个或 three-block 半径。这意味着,2017 年,该地区有 230 人被捕。好的。

但是,当我绘制它时,我得到一个从 500 一直到 2,500 的密度等级 运行ning(如下所示)。

这是 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

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


这是绘图输出:

如您所见,这相当 "washed out" ... 我觉得奇怪的是,根据假定的 238 人总逮捕人数,整张地图上都有紫色调。还有,密度图很奇怪...为什么逮捕人数有限时从500增加到2,500?

所以,最后有两个问题:

1.整张地图都是紫色调是不是正确?

2。为什么地图侧面的密度比例显示的是只有 238 人被捕的情况?

非常感谢任何 thoughts/suggestions/corrections 如何使这个情节 look/read 更好。

编辑

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

如您所见,第一张图片中的 "purple hue" 是有道理的。整个地区的逮捕人数有限,热图的黄色部分有大量逮捕。

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

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

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

这也解释了为什么整个地块都带有紫色调 - 您的数据表明在这些地区发生了 500 多起犯罪,尽管在现实中它可能更具体 streets/alleys。

你能做什么?

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

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

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