前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【科研猫·绘图】献礼国庆70年,R语言绘制中国地图

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

作者头像
用户6317549
发布2019-09-28 21:24:39
2.3K0
发布2019-09-28 21:24:39
举报
文章被收录于专栏:科研猫科研猫

建国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语言入门

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科研猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档