原文链接:http://tecdat.cn/?p=12299
最近我们一直在探索空间数据。事实证明,有一些很棒的R包可用于可视化此类数据。
以下是我汇总的一组图表。
每次shooting的位置在下面的地图上用红色圆圈标记。圆圈的大小取决于死亡人数。
在绝大多数情况下,shooter是有精神病史的白人男性,他们合法获得了武器。
较大的圆圈表示较高的死亡率。
代码语言:javascript复制
plot(US,xlim=c(-125,-65),ylim=c(39,39), asp=1.31803)
title(main="Mass Shootings 1982-2013")
points(d$longitude,d$latitude,col="red",cex=d$Fatalities*.25)
text(-69.31142,37.21232,"Newtown")
text(-72.41394,30.22957,"Virginia Tech")
text(-111.04308,38.55200,"San Ysidro n McDonald's Massacre")
text(-89.72780,25.9,"Luby's Massacre")
#使用 locator() -- 将圆添加到标签
points(c(-77.67630,-72.99422),c(36.08547,31.16065),type='l')
points(c(-71.71729, -69.05702),c(39.79927,37.94237),type='l')
points(c(-96.51104, -92.68024),c(29.62669,26.23582),type='l')
points(c(-115.8778, -111.4086),c(33.98637, 36.73135),type='l')
R对空间数据具有灵活性。它可以缩小范围并显示全球数据。去年,马航曾多次成为新闻焦点,因此这是一个非常热门的例子。我们可以使用路线的阴影来显示频率。前往热门目的地的路线是明亮的蓝色阴影。
我还绘制了法航和美国航空的路线。
代码语言:javascript复制
attach(gs)
for(i in 1:length(S_Long)){
inter<- gcIntermediate(cbind(gs[i,]$S_Long, gs[i,]$S_Lat),
cbind(gs[i,]$D_Long, gs[i,]$D_Lat), n=100)
index<-round( (Dest_Count/max(Dest_Count))*length(colors))
lines(inter, col=colors[index], lwd=.2)
}
title(main="American Airline Routes",col.main="Blue")
Ggmap允许R直接从Google获取地图并放大特定的城市。以下是波士顿的地图,显示了2014年的犯罪地点。红色圆点表示事件,蓝色圆点表示drug犯罪。较深的红色区域表示该位置有更多事件。
蓝色标记表示drug,红色点表示shooting事件。
如果我们放大波士顿市中心,将会看到更少的shooting事件。仍然有很多drug圆圈,但它们主要集中在地区:唐人街,波士顿。
代码语言:javascript复制bos_plot geom_point(data=bos_2,aes(x=bos_2$Lat,y=bos_2$Long),
col='red',alpha=.5,
size=5) geom_point(data=bos_3,aes(x=bos_3$Lat,y=bos_3$Long),
col='blue',alpha=.5,
size=2)