创建纽约市的热图

时间:2019-03-15 22:12:31

标签: r matlab heatmap

我已经在Excel(NYC地铁站的每日负荷)上收集了一些数据。第一列具有站点名称,第二列具有占用位置,第三列和第四列具有经度和纬度,如下所示。

enter image description here

如何将其转换为纽约市的热图?我知道可以使用R或Matlab进行编码,但可以使用其他任何方便的方法。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

首先,仅进行五次观察,热图可能不是可视化给定数据的最佳方法。将每个观察点作为一个点,然后按占用率进行颜色编码可能是解决给定问题的更好方法。通常,只要有经纬度数据,我都会使用R中的GGMap库和Google Maps API绘制数据。可以在下面找到在R中制作热图(如果您真正想要的)的代码,但请注意,您必须具有Google Maps 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)

enter image description here

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