如何用R绘制地图

Python015

如何用R绘制地图,第1张

这里主要介绍下在R语言中绘制地图的个人琢磨的思路。绘制地图步骤有三:

你得需要绘制地图;(约等于废话)

你得有要绘制地图的地理信息,经纬度啊,边界啊等等;

你得利用2的数据在R中画出来。

以上步骤中,目前最关键的是2,一旦2的数据有了,在R中不就是把它们连起来嘛,这个对于R来说就是调戏它,就跟全民调戏小黄鸡一样。

R语言中绘制地图的思路也是由于2的获取方式不一样而分开的。

第一种思路:有一些R包中存储着常见地图的数据,比如maps包中存有世界地图、美国地图、美国各州郡地图、法国地图以及加拿大城市地图等,加载了这个包,就可以轻松愉快地绘制上述地图。mapdata包中存有中国地图的数据,但是比较旧了,这个数据,重庆还没有从四川分出来呢。

第二种思路:我先去一个地方所画图的地理数据,然后读入R进行绘制。比如由于mapdata中的中国地图比较久远了,谢老大的《终于搞定中国分省市地图》一文中就介绍了,先从国家基础地理信息中心中国各省市的地理数据,之后再绘制。后来肖凯老师又介绍googleVis包也可以按照这个思

相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。相关性分析旨在研究两个或两个以上随机变量之间相互依存关系的方向和密切程度。

一般来讲研究对象(样品或处理组)之间使用距离分析,而元素(物种或环境因子)之间进行相关性分析 。两个变量之间的相关性可以用简单相关系数(例如皮尔森相关系数等)进行表示,相关系数越接近1,两个元素相关性越大,相关系数越接近0,两个元素越独立。

Pearson相关系数是用于表示相关性大小的最常用指标,数值介于-1~1之间,越接近0相关性越低,越接近-1或1相关性越高。正负号表明相关方向,正号为正相关、负号为负相关。适用于两个正态分布的连续变量。

利用两变量的秩次大小来进行分析,属于非参数统计方法。适用于不满足Pearson相关系数正态分布要求的连续变量。也可以用于有序分类变量的之间的相关性测量。

Kendall's Tau相关系数是一种非参数检验,适用于两个有序分类变量。

此外衡量两个变量之间关系的方法还有:卡方检验、Fisher精确检验等。

Pearson、Spearman、Kendall相关系数都可以通过cor函数实现,cov协方差函数参数同cor函数。

ggcorrplot包内只有2个函数,一个cor_pmat()用于计算p值,一个ggcorrplot()用于绘图。ggcorrplot相当于精简版的corrplot包,只有主题更加丰富多样。

This function computes and returns the distance matrix computed by using the specified distance measure to compute the distances between the rows of a data matrix.

这个函数用特定的方法计算矩阵的行之间的距离,并返回距离矩阵。

scale是对矩阵的每一列进行标准化,如果要对行标准化需要先转置。如 heatmapdata <- t(scale(t(heatmapdata)))

R中的画地图的方法不外乎两种,一种是利用GIS方面的数据,在R中画出来,另一种是直接从谷歌地图等地方拿来主义。

先说第一种,最早应该是从maps包开始的,这个包里没记错的话应该用map函数为主,

>map("world", fill = TRUE, col = rainbow(200),ylim = c(-90, 90), mar = c(0, 2, 0, 0))

>title("worldmap")

这种用法大家应该很熟了,比较可惜的是里面的数据是在是太少了,连张中国地图都画不了,好在后来有了mapdata等一系列的包,CRAN上maps包后面那一串全是。

具体的内容看一下文档就ok啦,可是问题又来了,R包里的数据总是不够用的,而且还不新,这个时候就可以考虑sp包了,包里的spplot函数可以用来画地图