使用R语言对进行地理空间数据可视化

2021-01-13 14:50:50 浏览数 (1)

原文链接: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)

0 人点赞