前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言系列第六期:③R语言高级绘图(上)

R语言系列第六期:③R语言高级绘图(上)

作者头像
百味科研芝士
发布2019-05-23 21:45:24
3.8K0
发布2019-05-23 21:45:24
举报
文章被收录于专栏:百味科研芝士百味科研芝士

这一节将介绍更多的R图形资源。首先是定制R图形的一些常用方法,主要涉及数据和模型的图形绘制。然后是如何自定义其他类型的图形或点线等元素。

A. 绘制二维图形

在R中,绘制二维图形主要有两个函数plot()和matplot()。

plot()函数主要绘制标准的x-y图形,它是基于笛卡尔坐标。这个函数会将两个向量作为参数,第一个向量作为横轴的值,第二个向量作为纵轴的值。例如:

> x=(0:100)*2*pi/100

> y=sin(x)

> plot(x,y)

如果只将一个向量做为plot()函数的参数,则该向量的值将作为y轴的值,而x轴的值由R自动产生:

> plot(y)

matplot()函数将两个矩阵作为参数。一个矩阵的列参照另一个矩阵的相应列来绘制图形。在绘制同一个图时,两个矩阵的行数应该一样。如果行数不一样,行数较少的那个矩阵用缺失值(NA)来填充。第一个矩阵的值会用在横轴上。如果其中一个矩阵只有一个列,则绘制的所有图形都将用该列的值。每一队列所绘制的图形颜色不一样,编号会用来做为不同图点的图形符号。这些选项也可由用户自己定义,例如:col=和pach=,后面会介绍这些选项。在对图形添加多个点时,matplot()函数可以省去很多麻烦,不用一一设定每个point()语句。matplot()函数可以统一设置各点的格式,并自动选择合适的坐标轴范围,使图形中包含全部数据,例如:

> y1=sin(x)

> y2=cos(x)

> y=cbind(y1,y2)

> matplot(x,y)

B. 符号、线与坐标轴风格的选项

可以使用一些选项来制定R绘制的图形。在函数plot()和matplot()中,选项通常作为附加参数被调用。可选参数能以任意顺序输入,以逗号隔开。如果省略这些参数,它们大多会采用默认值,下面将更加系统地介绍这些选项。

1

数字符号类型

绘图时对数据点所用的符号可通过pch=选项来指定(pch意思是“plotting character”)。例如pch=1表示用圆圈绘制数据点。下图就是常用的符号和对应的数值代码。

2

连接线类型

如果线是用来连接数据点或者绘制曲线,则可用lty=选项来控制它的样式。一般的线类型和对应的数值代码如下图所示。

另外,使用lty=选项和matplot()的其它选项时,可将这些选项的值组成一个向量,向量中的各元素会分别用到对应的图形上,使其具有不同的样式。例如:

> matplot(x,y,type="l",lty=c(1,2),col="black"

#Tips:我们可以看出来两个函数图分别用了线类型不同的两条线来绘制,col的设定可以保证两条线的颜色相同。

3

曲线类型

可用type=“”选项来指定不同的曲线类型。例如:type=“p”表示在绘制曲线时,只画点而不画连接线。常用的类型如下:

p:只画点的符号而不画连接线。

l:只画连接线而不画点的符号。 o:既画点的符号,又画连接线。 b:与o选项一样,只是连接线不会与点的符号接触。 h:在每个点与横轴之间画一条垂直线。 s:绘制“梯形”图,即先用水平直线,然后用竖线连接相邻点。 S:同s相似,只是水平线和垂直线顺序相反。 c:连接线里剔除掉点位置。

4

坐标轴的限制

选项xlim=和ylim=可分别用来限制横轴和纵轴的范围,例如,xlim=c(0,10)会让R只使用横轴值在0到10范围内的数据。如果数据超过此范围,就不会出现在绘制的图形中。

5

刻度线

在坐标轴上的刻度线由选项lab=和tcl=控制。lab=选项是一个向量,它有两个元素,第一个元素是横轴的刻度线数量,第二个选项是纵轴的刻度线数量。例如lab=(7,3)表示x轴被7个刻度线分成8个间隔;y轴被3个刻度线分成4个间隔。如果所指定的lab=选项不能使绘制的图形正常显示,R可能会重新用恰当的值来代替lab=选项的值。tcl=选项将一行文字的高度作为刻度线的长度。tcl的值为负数是表示刻度线在坐标轴外,为正数表示刻度线在坐标轴内。

6

坐标轴标签

在默认的情况下,横轴和纵轴的标签是绘图向量的名称。将标签通过xlab=“”和ylab=“”选项来修改,将所需的文本字符串放在引号中即可。例如:xlab=“time”,ylab=“population size”。

7

不显示坐标轴

有时图形不需要坐标轴会更好看些。不显示坐标轴的选项是axes=FALSE,不显示坐标轴标签的选项是ann=FALSE。

8

字符和标签大小可用选项cex=来修改

在默认情况下,cex指定的值为默认字符大小的倍数。cex的默认值为1。比如若cex=2,所绘制的字符为正常大小的2倍;cex=0.5,所绘制的字符是正常大小的一半。下面这些绘图选项也是通过类似的方式控制大小,即,都是参数值作为默认大小的倍数。

cex.axis= 为刻度文本大小的倍数

cex.lab= 为轴标签文本大小的倍数 cex.main=为标题文本大小的倍数 cex.sub= 为子标题文本大小的倍数 lwd= 为所画线宽度的倍数

9

字体族、字号和字样的参数

font= 用于指定绘图使用的字体样式。1=常规,2=粗体,3=斜体,4=粗斜体,5=符号字体(以Adobe符号编码表示)

font.axis= 坐标轴刻度文字的字体样式

font.lab= 坐标轴标签(名称)的字体样式

font.main= 标题的字体样式

font.sub= 副标题的字体样式

ps 字体磅值(1磅约为1/72英寸)。文本的最终大小为 ps*cex

family 绘制文本时使用的字体族。标准的取值为serif(衬线)、sans(无衬线)和mono(等宽)

C. 颜色

在数据图形中颜色应该谨慎且有节制地使用。当使用颜色时,应突出重要的信息,而不能随意使用它。颜色会产生干扰,当图中的符号具有不同颜色时,眼睛会自动寻找不同颜色的含义。纯粹的装饰色彩会将人们的注意力从图形本身所要表达的信息引开。用彩色数据图形还会有一个不太重要但也不能忽略的问题:一小部分人是色盲,而这部分人的数量也不在少数。

若要在绘图函数中使用彩色,可通过下面这些选项集来实现:

col=用来指定plot()函数和 matplot()函数中数据符号和曲线的颜色,还有barplot()函数生成的条形图颜色;

col.axis=坐标轴的颜色

col.lab=坐标轴标签的颜色 col.main=主标题颜色 col.sub=副标题颜色 fg= 图形的前景色 bg= 图形的背景色

颜色可通过代码值来指定。例如col=25会得到蓝色。在控制台执行colors()函数就可知R能识别657种颜色,为了方便起见,会列出657颜色名称,这些名称能被R识别。所以,col=“blue”与col=25是一样的效果。

> colors()

[1] "white" "aliceblue" "antiquewhite"

[4] "antiquewhite1" "antiquewhite2" "antiquewhite3"

[7] "antiquewhite4" "aquamarine" "aquamarine1"

......

[652] "yellow" "yellow1" "yellow2"

[655] "yellow3" "yellow4" "yellowgreen"

当然有些时候我们需要在图形上绘制独立的点,线或者文本等,这些都不是绘图函数的参数,需要独立的函数来支撑,我们下一节就为大家来介绍这些。

参考资料: 1. 《R语言统计入门(第二版)》 人民邮电出版社 Peter Dalgaard著 2. 《R语言初学者指南》 人民邮电出版社 Brian Dennis著 3. Vicky的小笔记本《blooming for you》by Vicky

End

TISIDB:一个专注做肿瘤免疫分析的神器

ECharts:生信统计小白都会的画图神器

确认过眼神,TCGA甲基化分析工具再也没有更NB的了!

【神器分享】自从用了这个神器,大规模RNA-seq数据挖掘我也可以

一个逆天的small RNA-seq数据挖掘神器

最全网页版生存分析工具,你掌握了几种?

懒人如何分析TCGA数据之cBioportal网站

DAVID&Metascape:专注于基因功能注释和富集通路分析的网站

零代码如何画高逼格热图?

GEPIA:点点鼠标分析TCGA数据-超高自由度

TCGA数据库挖掘

零代码下载TCGA数据库第一期

零代码下载TCGA数据库第二期:UCSC-XENA工具

零代码TCGA数据库下载第三期:cBioPortal网页

零代码下载TCGA数据库第四期:Fire Browse工具

手把手教你用R语言下载TCGA数据库:UCSCXenaTools

手把手教你用R下载TCGA数据:CGDSR包

手把手教你用R语言下载TCGA数据库:FirebrowseR

手把手教你用R语言下载TCGA数据库:GDCRNAtools

GEO数据挖掘系列

手把手教你GEO数据库表达谱差异基因分析(上):R版

手把手教你GEO数据库表达谱差异基因分析(下):GEO2

R语言实例操作分析GEO数据库甲基化芯片

GEO数据库甲基化芯片挖掘发3分SCI是怎样炼成的

R统计分析与绘图系列

浅谈一款进阶软件R的实际运用

R语言系列第五期:③R语言逻辑回归预测和检验

R语言系列五:②R语言与逻辑回归建立

R语言系列五:⑤R语言与多元回归

R语言系列第四期(番外篇):样本容量和把握度计算

R语言系列第四期:③R语言表格数据率的比较

R语言系列第四期:②R语言多组样本方差分析与KW检验

R语言系列第四期:①R语言单样本双样本差异性检验

R语言系列第三期:③R语言表格及其图形展示

R语言系列第三期:②R语言多组汇总及图形展示

R语言系列第三期:①R语言单组汇总及图形展示

R语言系列第二期(番外篇):R先生教你统计概率与分布

R语言系列第二期:①R变量、脚本、作图等模块介绍

R语言系列第二期:②R编程、函数、数据输入等功能

R语言系列第一期(番外篇 ):R的6种对象—向量、矩阵、数组、因子、列表、数据框

R语言系列第一期:R语言背景、下载安装及功能介绍

SCI科研

写好Response letter,让editor啧啧称赞

亲妈式搜索引擎,学习、购物、看剧、小说、听歌……全都免费包了

Researcher:你的专属文献追踪神器

实用干货| 投稿cover letter 怎么写才能留下完美第一印象

毕业答辩PPT太丑被评审专家怒斥,你缺了这个神器

基于Firefox的升级版PubMed,让你一眼看穿JCR分区、IF、引用情况

又是文献求助?没空下!去找K哥中不中?

他,“操纵”了期刊影响因子40年

外文文献翻译,秒否?文献阅读,知否?

玩转SCI:短平直快查询 IF & JCR分区&审稿周期&国产发文

SCI拟投稿期刊怎么选?要分数还要速度!

免费下载中英文文献,这些强大的方法不容错过

Pubmed专题系列

PubMed专题:(一)如何精准高效地进行文献搜索

硕博驿站

"都挺好-苏明玉如果是个医学生还能都挺好吗"

考研调剂,是考生的孤身奋战?还是导师与考生的共勉?

教育不公屡爆丑闻,2019研究生复试你要注意这些方面

规培变3年,寒窗苦读多少年,想做医生有多难!

“遇导不淑”高风险,火眼金睛选导师

博士之殇|进一步是荆天棘地,退一步是如履薄冰

从《流浪地球》到中科大失联博士:希望是像钻石一样珍贵的东西

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

本文分享自 百味科研芝士 微信公众号,前往查看

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

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

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