第3章 图形初阶

《R语言实战》笔记系列


本章学习大纲

1.图形的创建和保存

2.自定义符号、线条、颜色和坐标轴

3.标注文本和标题

4.组合多个图形

第一部分 图形的创建和保存


图形的创建

plot()是R中为对象作图的一个泛型函数(它的输出将根据所绘制对象类型的不同而变化)。

一般形式plot(x,y,type="b")将x置于横轴,y置于纵轴,绘制点集(x,y),然后使用线段将其连接。选项type="b"表示同时绘制点和线。使用help(plot)可以查看其它选项。


简单图形创建例子


第3章 图形初阶_第1张图片
图形创建的结果

图形的保存

1、通过代码保存图形。将绘图语句夹在开启目标图形设备的语句和关闭目标设备的语句之间即可。如:pdf("mygraph.pdf")。还可以用win.metafile(),png(),jpeg(),tiff()等。

2、直接通过图形用户界面保存图形。

同时查看多个图形的方法

1、创建一幅新图形之前打开一个新的图形窗口。通过函数dev.new()创建新窗口。

2、通过图形用户界面来查看多个图形。在windows里勾选“历史”中的“记录”,然后使用菜单里的“上一个”和“下一个”来查看已经绘制的图形。

3、通过函数dev.new()、dev.next()、dev.prev()、dev.set()、dev.off()同时打开多个窗口。

第二部分 自定义符号、线条、颜色和坐标轴

一般通过修改图形参数来自定义一幅画的多个特征(字体、颜色、坐标轴、标签)。有两种方法:

1.通过函数par()来指定这些选项。这种方式设定的参数值除非会话结束前一直有效。

调用格式为par(optionname=value,optionname=name,....)。不加参数地执行par()将生成一个含有当前图形参数设置的列表。添加参数no.readony=TRUE可以生成一个可以修改的当前图形参数列表。

注意最后一行通过par()来还原原始设置

2.可以直接在高级绘图函数中设定参数,且该参数只对这幅图形有效。但不是所有的高级绘图函数都允许指定全部可能的图形参数。


该参数只对该图形有效

符号和线条

如下图所示,参数pch用于指定绘制点时使用的符号。cex指定符号的大小,cex是一个数值,表示绘图符号相对于默认大小的缩放倍数。默认大小为1,1.5表示放大为默认值的1.5倍。lty标书线条类型,lwd表示线条宽度,默认值为1。

第3章 图形初阶_第2张图片
符号与线条的参数


第3章 图形初阶_第3张图片
符号21-25还可以指定边界颜色(col=)和填充色(bg=)


第3章 图形初阶_第4张图片
参数lty的线条类型
第3章 图形初阶_第5张图片
案例plot(dose,drugA,type="b",lty=3,lwd=3,pch=15,cex=2)

颜色

在R中可以通过颜色下标,颜色名称,十六进制的颜色值、RGB值或HSV值来指定颜色。比如col=1,col="write",col="#FFFFFF",col=rgb(1,1,1),col=hsv(0,0,1)

第3章 图形初阶_第6张图片
关于颜色的参数

col是默认的绘图颜色; col.axis是坐标轴刻度文字的 颜色

col.lab是坐标轴标签(名称)的颜色;col.main是标题颜色

col.sub是副标题颜色 ; fg是图形的前景色; bg是图形的背景色

文本属性

第3章 图形初阶_第7张图片
字体大小以及字样的参数

cex表示相对于默认大小缩放的数值。font表示用于指定绘图使用的字体样式,1=常规,2=粗体,3=斜体,4=粗斜体,5=符号字体。ps表字体磅数,文本最终大小为ps*cex。family表示绘制文本使用的字体族。标准的取值为serif(衬线)、sans(无衬线)和mono(等宽)

图形尺寸与边界尺寸


图形尺寸和边界尺寸的参数


设置图形和边界尺寸的案例

第三部分 标注文本和标题

许多高级绘图函数(plot,hist,boxplot)中可以设定坐标轴和文本标注选项。如标题(main)、副标题(sub)、坐标轴标签(xlab、ylab)并指定了坐标轴范围(xlim、ylim)。但并不是所有函数都支持这些选项。某些高级绘图函数已经包含了默认的标题和标签,可以通过在plot()语句或单独的par()语句中添加ann=FALSE来移除它们。


plot语句案例


第3章 图形初阶_第8张图片
plot()语句所绘画的图

标题

可以用titile()函数为图形添加标题和坐标轴标签,调用格式:


title()函数的一般格式

函数titele()也可指定其他图形参数(如文本大小,字体,旋转角度,颜色),具体函数见上。如col.sub="blue",cex.lab=0.75等。


坐标轴

可以通过函数axis()来创建自定义的坐标轴,而非R的默认坐标轴。

一般格式:axis(side,at=,labels=,pos=,lty=,col=,las=,tck=,..)


第3章 图形初阶_第9张图片
坐标轴参数汇总列表


第3章 图形初阶_第10张图片
自定义坐标轴示例


第3章 图形初阶_第11张图片
上述坐标轴选项的绘图结果

参考线

函数abline()可以用来为图形添加参考线,使用格式:

abline(h=yvalues,v=xvalues)

函数abline()也可添加指定其他图形参数(线条类型、颜色、宽度)如:abline(h=c(1,5,7))是指在1,5,7的位置添加水平线。

图例

函数legend()可以用来为图形添加图例,使用格式:

legend(location,title,legend,bty,bg,horiz=TRUE...)

指定盒子样式的bty,指定背景色的bg,指定水平放置图例的horiz=TRUE


图例的示例代码


第3章 图形初阶_第12张图片
图例的示例绘图

文本标注

通过函数text()和mtext()将文本添加到图形上。text()可以向绘图区域内部添加文本,mtext()可以向图形的四个边界之一添加文本。使用格式:

text(location,"text to place",pos,...)

mtext(location,"text to place",side,line=n,...)


第3章 图形初阶_第13张图片
函数text()和mtext()的选项


函数text()和mtext()示例


第3章 图形初阶_第14张图片
散点图的示例,各点添加了标签

数学标注

可以使用类似TeX中的写法为图形添加数学符号和公式。可以用help(plotmath)以获得更多细节和示例。

第3章 图形初阶_第15张图片
demo(plotmath)的部分效果

第四部分 组合多个图形

在R中使用函数par()或layout()将多个图形组成为一幅总括图形。

par()函数中使用图形参数mfrow=c(nrows,ncols)来创建按行填充的,行数为norws,列数为ncols的图形矩阵。也可以使用mfol=c(nrows,ncols)按列填充矩阵。

第3章 图形初阶_第16张图片
par()函数的应用
第3章 图形初阶_第17张图片
以上代码的结果(三行一列排布三幅图)

函数layout()的调用形式为layout(mat),其中mat是一个矩阵,它指定了所要组合的多个图形的所在位置。以下的代码示例显示一幅图被置于第1行,另两幅图被置于第2行。更精确地控制每幅图形的大小,可以在layout()函数中使用widths=和heights=两个参数。

第3章 图形初阶_第18张图片
layout()函数的应用
第3章 图形初阶_第19张图片
layout()函数代码的结果

对于更加精确的叠加或者排布若干图形,需要使用图形参数fig=.。以下为f参数fig=的取值,是一个形如c(x1,x2,y1,y2)的数值向量。fig=默认会新建一幅图形,所以在添加一幅图到一幅现有图形上,先设定参数new=TRUE。

第3章 图形初阶_第20张图片

你可能感兴趣的:(第3章 图形初阶)