研究者除了绘制不同的线型之外,还可以利用其他参数设置文字和符号。利用R函数text可以设置字符,利用函数points设置各种点符号。如果要在图2.2中增加文字说明线条的性质,如命令text(8.3,9,' A')和text(7.3,1,' B')设置字母A和B,命令points(2,5,pch=1)和points(7,1,pch=2)设置一个圆圈和三角形,则R输出结果如图2.4所示。
图2.4 增加文字和点
函数points除了可以用来绘制圆圈和三角形外,还可以绘制其他符号,如图2.5所示。
图2.5显示,函数points可以绘制24种符号,这些符号分别有对应的数字,如pch=0绘制正方形符号(□)。如果要设置字符相对于R默认值(1.0)的大小,用变元cex(character expansion factor,字符扩大因子)。例如,R命令text(2,6,'pch=0',cex=1.5)在点(2,6)的位置绘制符号,符号的大小是R默认值的 1.5 倍。
研究者可以利用函数mtext在绘制图形之前或之后设置轴标签、标题和子标题。譬如,mtext(text=c('X','Y'),side=c(1,2),line=2,cex=1)设定横坐标(side=1)和纵坐标(side=2)的标签分别为X和Y,位置距离制作图形两行。利用mtext还可以在图形边缘添加标题和子标题。例如,mtext(text=c(' Subtitle' ,' Title'),side=c(1,3),line=c(3,0.5),cex=c(1.2,1.5))。
图2.5 函数points绘制的符号
研究者还可以利用变元col设置文字、线条和点的颜色。颜色的设定可以用数字,也可以用文字。图2.6部分显示变元col绘制的颜色。更多的颜色设置可以利用R命令colors()查看。
图2.6 变元col绘制的颜色
实际操作中可以用文字代替对应的数字,但是文字需放在双引号内。例如,col='cyan'等同于col=5。变元col还可以用于绘制不同的灰度。譬如,col=gray(0.5)绘制中等程度的灰色。数字0、0.1和0.3等直至1,表示灰度依次减弱。
研究者可以对图形中的文字设定不同的字体(font)。图 2.7 显示Helvetica和Times的不同字体(普通体、粗体、斜体和粗斜体)。譬如,在text中设定Times的斜体,命令为font=8。
在图中增加图例(legend),使用函数legend。在函数legend中首先要设置图例的位置,比如左上方(' topleft')、右上方(' topright')、左下方(' bottomleft')或右下方('bottomright' ),也可以通过设定坐标点来指定图例的位置,如(2,6)。
图2.7 Helvetica和Times字体
图例文字用变元legend设置。注意,文字需置于双引号中。图例中的线型和点分别用变元lty和pch来设置。研究者还可以调整文字大小(利用变元cex)和改变颜色(利用变元col)等。变元inset用于按制图区的比例设置图例与图形边缘的距离。
例如,我们要在图2.2中增加两条线的图例。利用以下命令得到类似于图2.8的结果:
>par(mai=c(0.8,0.6,0.35,0),omi=c(0,0,0,0.1))
>plot(x=c(0,10),y=c(0,10),xlab='',ylab='',type='n')
>mtext(text=c(' Subtitle',' Title'),side=c(1,3),line=c(3,0.5),cex=c(0.85,1))
>mtext(text=c(' X',' Y'),side=c(1,2),line=2,cex=1)
>lines(x=c(2,8),y=c(5,9),lty=1)
>lines(x=c(7,2),y=c(1,8),lty=2)
>legend('topright',legend=c(' A',' B'),lty=c(1,2),cex=0.65,inset=0.02)
图2.8 图中添加图例
如果要去除图例方框,则在legend中增设变元bty='n'即可。将图例设在制图区的外围,则要在函数par中增设变元xpd=TRUE(xpd意为clipped)。