【问题标题】:Creating heat map of NYC [closed]创建纽约市的热图[关闭]
【发布时间】:2019-03-15 22:12:30
【问题描述】:

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

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

【问题讨论】:

    标签: r matlab heatmap


    【解决方案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)
    

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

    【讨论】:

    • 非常感谢!实际上我有 52 分,但我已经应付并在这里粘贴了 5 分。也许最好根据占用情况用不同大小和颜色的小斑点来展示它们。我会处理参数。这救了我的培根!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      • 2020-02-17
      • 1970-01-01
      相关资源
      最近更新 更多