在R中绘制地图上的相关数据

时间:2017-01-28 04:13:20

标签: r ggplot2

不确定是否有人可以提供帮助:

我有2个数据帧:一个是纬度/经度坐标列表,构成了纽约77个警察区的地图。另一个是纽约市犯罪数据清单,显示每个区域的谋杀,汽车盗窃和攻击数量。

我用ggplot在地图上绘制了区域。如何使用颜色覆盖该地图,例如,每个区域的谋杀数量? IE浏览器,红色区域内的谋杀案数量最多,最少为绿色。

地图数据框的设置如下:

Lat  |   Long  | Precinct 
-74  |    40.2 |      <2>

并且犯罪数据框的设置如下:

  Crime | Year | Value | Precinct
Assault |   03 | 2300  |      <2>

以下是我绘制地图的方式:

y <- ggplot(data = MyShapeMapData, aes(x = long, y = lat))
y + geom_polygon(aes(group = group), fill = NA, colour = "black") + coord_fixed(1.3)

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

您想要以下内容(显示一些虚拟数据)吗?

MyShapeMapData <- read.csv(text='lat,   long, Precinct 
-74.01,40.71,<2>
-74.00,40.72,<3>', stringsAsFactors=FALSE)
MyCrimeData <- read.csv(text='Crime, Year, Value, Precinct
Assault, 03, 2300,<2>
Murder,04, 700,<3>', stringsAsFactors=FALSE)

library(ggmap)
mymap <- get_map(location = "New York", zoom=15)

library(dplyr)
df <- inner_join(MyShapeMapData, MyCrimeData, by='Precinct')
df
#     lat  long Precinct   Crime Year Value
#1 -74.01 40.71      <2> Assault    3  2300
#2 -74.00 40.72      <3>  Murder    4   700
ggmap(mymap) + geom_point(data = df, aes(x = lat, y = long, color=Crime, size=Value)) + scale_size(range = c(10,20)) +
  scale_color_manual(values=c('blue', 'red')) #, alpha=0.5) + coord_fixed(1.3)

enter image description here