建国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语言入门
更多科研新鲜资讯、文献精读和生物信息技能