创建纽约市的热图

Creating heat map of NYC

我收集了一些关于 Excel 的数据(纽约市地铁站的每日负载)。第一列有站名,第二列有占用率,第三和第四列有经度和纬度,如下表所示。

如何将其转换为纽约市的热图?我知道用 R 或 Matlab 编码,但我愿意接受任何其他方便的方法。

Qgis 是一个开源工具。在其中,您可以从 .csv 文件创建图层,然后在图层属性 ==> 样式中选择热图并修改其他变量。一旦完成这一步,在 raster==> heatmap 下,修改其他参数就大功告成了。

首先,只有五个观测值的热图可能不是可视化给定数据的最佳方式。使每个观察点成为一个点,然后按占用情况进行颜色编码可能是解决给定问题的更好方法。一般来说,只要我有经度和纬度数据,我就会使用 R 中的 GGMap 库和 Google 地图 API 来绘制数据。在 R 中制作热图(如果那是你真正想要的)的代码可以在下面找到,但请注意你必须有一个 Google 地图 API 键(学生免费!!)。

library(tidyverse)
library(ggmap)
library(devtools)


register_google("YOUR_API_KEY")

nyc_map <- get_map(location = c(lon = -74.00, lat = 40.71), maptype = "terrain", zoom = 13)

 ggmap(nyc_map) + 
    geom_density2d(data = data, aes(x = Longitude, y = Latitude, fill = Occupancy), size = 0.3) + 
    stat_density2d(data = data, aes(x = Longitude, y = Latitude, fill = ..level.., alpha = ..level..), size = 0.01, bins = 16, geom = "polygon") + 
    scale_fill_gradient(low = "green", high = "red") + 
    scale_alpha(range = c(0, 0.3), guide = FALSE)

它并不完美,但这是制作热图的快速方法,也是一个不错的起点。请注意,站点相距很远,因此添加更多观测值可能会使绘图更好。 我使用 ggmap-demo-heat 获取了制作热图的代码。我再次建议为每个站点使用单个点 (geom_point),然后根据占用情况为每个站点着色。 geom_point(data = data, aes(x = Longitude, y = Latitude, col = occupany)) 可能是一个不错的起点。