《R语言实战》笔记系列
本章学习大纲
1.图形的创建和保存
2.自定义符号、线条、颜色和坐标轴
3.标注文本和标题
4.组合多个图形
第一部分 图形的创建和保存
图形的创建
plot()是R中为对象作图的一个泛型函数(它的输出将根据所绘制对象类型的不同而变化)。
一般形式plot(x,y,type="b")将x置于横轴,y置于纵轴,绘制点集(x,y),然后使用线段将其连接。选项type="b"表示同时绘制点和线。使用help(plot)可以查看其它选项。
图形的保存
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可以生成一个可以修改的当前图形参数列表。
2.可以直接在高级绘图函数中设定参数,且该参数只对这幅图形有效。但不是所有的高级绘图函数都允许指定全部可能的图形参数。
符号和线条
如下图所示,参数pch用于指定绘制点时使用的符号。cex指定符号的大小,cex是一个数值,表示绘图符号相对于默认大小的缩放倍数。默认大小为1,1.5表示放大为默认值的1.5倍。lty标书线条类型,lwd表示线条宽度,默认值为1。
颜色
在R中可以通过颜色下标,颜色名称,十六进制的颜色值、RGB值或HSV值来指定颜色。比如col=1,col="write",col="#FFFFFF",col=rgb(1,1,1),col=hsv(0,0,1)
col是默认的绘图颜色; col.axis是坐标轴刻度文字的 颜色
col.lab是坐标轴标签(名称)的颜色;col.main是标题颜色
col.sub是副标题颜色 ; fg是图形的前景色; bg是图形的背景色
文本属性
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来移除它们。
标题
可以用titile()函数为图形添加标题和坐标轴标签,调用格式:
函数titele()也可指定其他图形参数(如文本大小,字体,旋转角度,颜色),具体函数见上。如col.sub="blue",cex.lab=0.75等。
坐标轴
可以通过函数axis()来创建自定义的坐标轴,而非R的默认坐标轴。
一般格式:axis(side,at=,labels=,pos=,lty=,col=,las=,tck=,..)
参考线
函数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
文本标注
通过函数text()和mtext()将文本添加到图形上。text()可以向绘图区域内部添加文本,mtext()可以向图形的四个边界之一添加文本。使用格式:
text(location,"text to place",pos,...)
mtext(location,"text to place",side,line=n,...)
数学标注
可以使用类似TeX中的写法为图形添加数学符号和公式。可以用help(plotmath)以获得更多细节和示例。
第四部分 组合多个图形
在R中使用函数par()或layout()将多个图形组成为一幅总括图形。
par()函数中使用图形参数mfrow=c(nrows,ncols)来创建按行填充的,行数为norws,列数为ncols的图形矩阵。也可以使用mfol=c(nrows,ncols)按列填充矩阵。
函数layout()的调用形式为layout(mat),其中mat是一个矩阵,它指定了所要组合的多个图形的所在位置。以下的代码示例显示一幅图被置于第1行,另两幅图被置于第2行。更精确地控制每幅图形的大小,可以在layout()函数中使用widths=和heights=两个参数。
对于更加精确的叠加或者排布若干图形,需要使用图形参数fig=.。以下为f参数fig=的取值,是一个形如c(x1,x2,y1,y2)的数值向量。fig=默认会新建一幅图形,所以在添加一幅图到一幅现有图形上,先设定参数new=TRUE。