白话空间统计十二:R语言对点数据分析的实现(2)可视化

时间:2021-05-24 01:29:23

昨天我们简单的讲了R语言如何对点数据进行分析,今天继续把这个内容说法,其实R语言是非常强大的,他的强大之处,可能超出了你的想象的。

 

不过R语言也有缺点,最大的缺点就是所有的一切分析过程,都要通过敲命令的方式来实现,对于推广了超过10年的鼠标这种喜闻乐见的标准电脑外设来说,全部采用文本模式进行交互仿佛已经是远古时期的标志一样(不过很多电视剧里面,电脑高手的表现都是在键盘上运指如飞,他们从来不用鼠标……)

 

但是在空间分析里面,如果我给弹出两坐标文本,你肯定里面就抓瞎了,比如昨天我们分析完成之后,弹出这样一个结果:

 

白话空间统计十二:R语言对点数据分析的实现(2)可视化

 

所以不管怎么分析,最后还是要有可视化的结果比较容易让人接受,那么今天我们来讲讲用R语言把昨天分析的内容进行可视化的过程。

 

一般来说,分析的结果可视化有两种方式,第一种就是直接用R语言自带的能力来实现,如下:

(注意,下面的代码,library语言导入包我就不写了,大家自己写,或者参考昨天的博客)

 

> points.dataframe <-readShapePoints(file.path("e:/sh"))

> plot(points.dataframe,col="red",pch=16)

 

这两句完成之后,画出了一个红色点的图形,如下:

白话空间统计十二:R语言对点数据分析的实现(2)可视化

 

现在来计算中心点,代码如下:

 

> xy <-data.frame(points.dataframe$coords.x1,points.dataframe$coords.x2)

> mp <-mean_centre(id=1,filename="e:/output.txt",weighted=FALSE,weights=NULL,points=xy)

 

后面这句是把计算出来的中心点结果给一个叫做mp的变量。接下去,我们把这个mp也显示到图形上面去。

代码如下:

>points(mp$CENTRE.x,mp$CENTRE.y,cex=3,col="green",pch=17)

 

结果如下:

白话空间统计十二:R语言对点数据分析的实现(2)可视化

 

R语言的画图功能很强大,里面每个参数意思,大家有兴趣的可以查看有关的文档,我就不在这里一一描述了。

 

然后我们看看另外一个例子,就是同样用这个包来分析方向分布,也就是标准差椭圆,代码如下:

 

前面还是加载数据和画图,和上面的内容一样,如果你是分析同一份数据,只做一次就可以了,如果重新打开的,就要从library加载aspacemaptools两个包开始,我下面给出完整代码:

 

>library(aspace)

>library(maptools)

> points.dataframe <-readShapePoints(file.path("e:/sh"))

> plot(points.dataframe,col="red",pch=16)

> xy <-data.frame(points.dataframe$coords.x1,points.dataframe$coords.x2)

>sde = calc_sde(id=1,filename="e:/SDE_Output.txt",centre.xy=NULL,calccentre=TRUE,weighted=FALSE, weights=NULL, points=xy,verbose=FALSE)

>lines(sde$x,sde$y,col="green",lwd=3)

 

最后的结果如下:

 

白话空间统计十二:R语言对点数据分析的实现(2)可视化

 

 

当然,这些方法里面都一个filename的参数,所以你可以在你指定的地方输出一个txt文件,文件的内容如下:

1、中心点文件,因为是点数据,所以只有一条记录:

白话空间统计十二:R语言对点数据分析的实现(2)可视化

 

2、标准差椭圆的面数据文件:面是由多个点组成的,所有又若干条文件(如果是个圆,一般都是360条,每度一个坐标):

 

白话空间统计十二:R语言对点数据分析的实现(2)可视化

 

有这个TXT文件之后,你就可以通过各种手段把他变成shape file或者什么其他的数据了。

 

最后,aspace文档上,提出可以用shapefiles这个包,把数据直接变成shapefile,但是我这里运行会失败,不知道是不是版本的问题,大家可以自己试试,看看行不行,我这里就不说这个功能了。

 

当然,如果要直接处理成shapefile文件,还有很多的方法和包来实现,有兴趣的同学可以去查阅相关的R的文档。

 

关于R分析点数据,我暂时就先讲到这里,以后有机会我在讲用R进行其他的分析,毕竟这是开源界最强大的分析工具了,作为数据分析界的一员,R语言是很有必要学会的。