最近我们一直在探索空间数据。事实证明,有一些很棒的R包可用于可视化此类数据。
以下是我汇总的一组图表。
每次shooting的位置在下面的地图上用红色圆圈标记。圆圈的大小取决于死亡人数。
地图映射:
地图映射,也就是将数据中的地理坐标转换成屏幕上的坐标
按照曲面映射过程中的优化目标区分,地图映射主要包含以下三种类型:
等角度(正形投影):源曲面和目标曲面(即投影前后)的任何位置的局部切向和法向方向组成的角度保持不变
等面积:地图上任何图形面积经主比例尺放大以后与实地上相应图形面积大小保持不变
等距离:在标准经纬线上无长度变形,即投影后任何点到原点的距离保持不变
从地图到地理数据可视化
地图角色的改变
传统的角色:沟通功能 传递信息给大众
新的角色:认知功能 帮助人们思考,解决问题,做决定
地理空间可视化集成了从科学计算可视化(VISC)、制图、图像分析、信息系统(GISystems)到提供视觉探索、分析、综合和地理空间数据表示的理论、方法和工具的各种方法。
地理数据可视化的推动力:
图形硬件和个人电脑的普及
虚拟现实技术
爆炸性增长的数据
80%的采集数据包含地理信息
互联网的发展
信息的聚合,地图制作门槛的降低
地理空间数据可视化技术
可视化思考
可视化图形语言
地理数据和可视化技术
点数据
线数据
面数据
三维数据
数据的时间属性
地理空间数据:
地理信息空间数据与普通的空间数据都描述了一个对象在空间中的位置
点,线,面,空间,时空
点数据可视化
点数据描述的对象是地理空间中离散的点,具有经度和纬度的坐标,但不具备大小尺寸
最直接可视化点数据的方法:
根据坐标直接标识在地图上,圆点是最常用的标识符号
其它标识符号:向量箭头、六边形蜂窝网格……
在绝大多数情况下,shooter是有精神病史的白人男性,他们合法获得了武器。
较大的圆圈表示较高的死亡率。
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对空间数据具有灵活性。它可以缩小范围并显示全球数据。去年,马航曾多次成为新闻焦点,因此这是一个非常热门的例子。我们可以使用路线的阴影来显示频率。前往热门目的地的路线是明亮的蓝色阴影。
我还绘制了法航和美国航空的路线。
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圆圈,但它们主要集中在地区:唐人街,波士顿。
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)
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!