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

原文链接:http://tecdat.cn/?p=12299

最近我们一直在探索空间数据。事实证明,有一些很棒的R包可用于可视化此类数据。

以下是我汇总的一组图表。


每次shooting的位置在下面的地图上用红色圆圈标记。圆圈的大小取决于死亡人数。

在绝大多数情况下,shooter是有精神病史的白人男性,他们合法获得了武器。

较大的圆圈表示较高的死亡率。





  1. 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对空间数据具有灵活性。它可以缩小范围并显示全球数据。去年,马航曾多次成为新闻焦点,因此这是一个非常热门的例子。我们可以使用路线的阴影来显示频率。前往热门目的地的路线是明亮的蓝色阴影。

我还绘制了法航和美国航空的路线。



  1. 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圆圈,但它们主要集中在地区:唐人街,波士顿。

  1. 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)

相关推荐