如何制作显示R中某个区域的数据点密度的地理地图?

时间:2018-11-22 22:53:54

标签: r csv dictionary ggplot2 maps

我在CSV文件中有5000多个数据点的列表,告诉我每个数据点的来源状态(如“加利福尼亚”为“ CA”)。 CSV的列分别说明“地址,城市,州,邮政编码”。我的任务是制作一张美国州地图,并显示每个州的数据点密度,其中,州阴影越深,该州所处的数据点就越多。然后,我还应该提供一个图例,该图例给出每个状态的确切数字(例如“ Masachussetts [23]”)。

我在网上找到了代码,该代码为我提供了带有颜色的州的地图,但是我不确定如何进一步进行操作(我在编码方面很糟糕)。如何从CSV文件中导入数据,并仅在此代码的上下文中显示数据点的位置,数量和密度,以及如何仅具有状态而不着色?

以下是创建美国州地图的代码:

    library(ggplot2)
    library(ggmap)
    library(maps)
    library(mapdata)
    states <- map_data("state")
    dim(states)
    #> [1] 15537     6

    head(states)
    #>        long      lat group order  region subregion
    #> 1 -87.46201 30.38968     1     1 alabama      <NA>
    #> 2 -87.48493 30.37249     1     2 alabama      <NA>
    #> 3 -87.52503 30.37249     1     3 alabama      <NA>
    #> 4 -87.53076 30.33239     1     4 alabama      <NA>
    #> 5 -87.57087 30.32665     1     5 alabama      <NA>
    #> 6 -87.58806 30.32665     1     6 alabama      <NA>

    tail(states)
    #>            long      lat group order  region subregion
    #> 15594 -106.3295 41.00659    63 15594 wyoming      <NA>
    #> 15595 -106.8566 41.01232    63 15595 wyoming      <NA>
    #> 15596 -107.3093 41.01805    63 15596 wyoming      <NA>
    #> 15597 -107.9223 41.01805    63 15597 wyoming      <NA>
    #> 15598 -109.0568 40.98940    63 15598 wyoming      <NA>
    #> 15599 -109.0511 40.99513    63 15599 wyoming      <NA>
    ggplot(data = states) + 
      geom_polygon(aes(x = long, y = lat, fill = region, group = group), 
    color = "white") + 
      coord_fixed(1.3)

0 个答案:

没有答案