【科研猫·绘图】献礼国庆70年,R语言绘制中国地图

2019-09-28 21:24:39 浏览数 (1)

建国70周年大庆即将到来,各行各业都在积极筹备迎接祖国的生日,在这个举国欢腾的时刻,我们决定以一种特殊方式来表达自己对祖国母亲的祝福:一副用R语言绘制的中国地图。

对于为什么要跟大家讲地图的绘制,还有个重要的原因,就是我们很多做流行病学研究的同学会涉及到地图的绘制,其频繁出现在Lancet或者NEJM这类顶级杂志中,但是地图的绘制往往又是一大难题。

对于做流行病学研究的各位来说,流行病学的数据讲究“三间分布”,即人群分布、时间分布和空间分布。其中的“空间分布”最好是在地图上展示才比较清楚。R软件集统计分析与高级绘图于大成,是最适合做这项工作了。关于R语言绘制地图,可能大家还心存疑问,感觉R语言是无法完成这些工作的,下面我们逐一看来。

LEVEL 1

绘制地图之前,需要获取地图的数据,包括世界地图、中国地图或者各省市地图都一样。地图的GIS数据可以在国家基础地理信息中心的网站(http://nfgis.nsdi.gov.cn)里面免费下载。官方公开的数据包括:地图数据,及居住地、交通、河流等辅助数据。在这里,我们把中国地图的GIS文件分享给大家(详情见文末客服:胖雨小姐姐)。

绘制地图非常简单,只要加载几个常用的R包即可。然后读取gis文件就能直接作图。

做出来的中国地图是下面这样的,这个地图中包括了我国的各大省市,不过这里所有省市的颜色都是一样的,暂时还不能帮助我们描述更多的信息。

LEVEL 2

如果我们的功能再强大一点,把34个省市、直辖市等都标注上不同的颜色,可以简单直接地指定col参数来实现。

在这里,我使用了R语言中自带的颜色方案terrain.colors()函数,其主要用来对地形定义颜色。画出来的图形是这样的:

LEVEL 3

流行病学中绘制地图主要的目的是为了描述发病率一类的信息,然后用不同的颜色将其Highlight出来。下面我们就来试试看。

将我国的四个直辖市的名字挑出来,然后定义成四个不同的颜色,其余省市还是用白色表示,画出来的图是这样子的:

如果能够做到这一步,那我们就能够将感兴趣的省市给凸显出来了,比如我国首都-北京,再或者人口最多的省市-河南,再比如某某疾病发病率最高的省市等等。

LEVEL 4

那有没有更加高级的方法,比如按照发病率的高低,或者类似的连续性变量,将不同省市/直辖市标注成不同的颜色呢?就像我们在NEJM和Lancet这一类文章中看到的。当然可以,作为无所不能的科研猫技术宅,没有什么对我们来说是不能实现的。下面就给大家演示一个最直观的例子。

实例

在中国地图中标注不同省市的人口数量

为了方便大家以后更方便地使用我们的这个代码,我们把数据都直接放到Excel表格中,如果大家要绘制自己的数据,只需更改这个数据即可,无需更改代码。我们的数据如下,省市按照“省份、直辖市、自治区、特别行政区”排列,各省市名称按照首字母顺序排列,人口数据在最后一列:

大家可以想一下,如果要按照人口数量绘制地图的话,其实在画图的过程当中跟刚才的绘图方法没有太大区别,只是刚才用的是随机的颜色,这里我们把不同省份颜色按照数值高低排列即可,就是这么简单。具体的代码如下(版面问题,代码有缩略,需要代码请关注公众号,联系文末客服):

绘制出来的图形就是按照人口数量的多少进行颜色排布的:

LEVEL 5

好的,地图绘制到这里,相信大家的问题基本也都解决了,如果想把自己的数据和地图中省份的颜色match上,直接更改表格中的数据,按照我们的代码运行即可。

下面,就是说说我们的特殊礼物了。作为数据分析师,没有什么比自己动手绘制一幅涵盖祖国大好河山的地图更有意义了,于是乎,我们纯用R语言(没有用到任何后期制图软件哦),通过不同的绘图函数,给祖国的生日献上一幅漂亮的中国地图。

最后,祝福祖国永远繁荣昌盛,愿祖国的科研、卫生事业快速稳定发展,跃居世界一流水平。

本期干货

!地图绘制代码!

·

关注“科研猫”公众号,联系客服

胖雨小姐姐

or

折耳猫小姐姐

领取

往期干货找不到?自己看看下面是森么!

往期干货链接

R语言从入门到精通系列

从今天开始,每天学点R语言~

R语言从入门到精通:Day1

R语言从入门到精通:Day2

R语言从入门到精通:Day3

R语言从入门到精通:Day4

R语言从入门到精通:Day5

R语言从入门到精通:Day6

R语言从入门到精通:Day7

R语言从入门到精通:Day8

R语言从入门到精通:Day9

R语言从入门到精通:Day10

R语言从入门到精通:Day11

科研作图系列

【科研猫·绘图】今夏最热的“热图”(带R代码分享)

【科研猫·绘图】看·箱线图·如何美丽动人(代码分享)

【科研猫·绘图】优雅版·小提琴图(带R代码分享)

【科研猫·绘图】缤纷版·韦恩图(带R代码分享)

【科研猫·绘图】朋友圈最火热的“火山图”(带R代码分享)

【科研猫·绘图】bar(霸)图绘制之霸气满屏

【科研猫·绘图】GSEA分析全攻略,带视频分享

【科研猫·绘图】团团“圆圆”,来个不一样的月饼

网络图

从网络图探寻基因互作的蛛丝马迹(1)

【科研猫·绘图】从网络图探寻基因互作的蛛丝马迹(2)

从网络图探寻基因互作的蛛丝马迹(3)

从网络图探寻基因互作的蛛丝马迹(4)

从网络图探寻基因互作的蛛丝马迹(5)

生存分析系列

【科研猫】生存分析的正确姿势(1)视频 R代码分享

【科研猫·出品】TCGA超大批量生存分析教程

GEO数据挖掘系列

GEO数据库挖掘(1)--SCI文章速成

GEO数据库挖掘(2)--快速锁定目标数据

挖掘GEO速成SCI文章系列教程(3)-R语言基础

重磅:GEO数据库挖掘教程(4)一体化分析代码(带视频 R代码分享)

GO/KEGG功能富集系列

3分钟了解GO/KEGG功能富集分析

干货预警:3分钟搞定GO/KEGG功能富集分析(2)

终极篇:3分钟搞定GO/KEGG功能富集分析-柱状图

终极篇:3分钟搞定GO/KEGG功能富集分析-气泡图

TCGA数据挖掘系列

隔壁实验室的“秃鹫”师兄又发SCI啦--TCGA数据挖掘实战

TCGA数据挖掘终结者:cBioPortal

生物信息入门系列

大咖聊“生信”—生物信息系列(1)

生物信息系列课程-R语言入门

更多科研新鲜资讯、文献精读和生物信息技能

0 人点赞