R图形参数
我们可以通过修改称为图形参数的选项来自定义一幅图形的多个特征(字体、颜色、坐标轴、标题)。
①(修改图形参数的)一种方法是通过函数par()来指定这些选项。
以这种方式设定的参数值除非被再次修改,否则将在会话结束前一直有效。其调用格式为par(optionname=value,optionname=name,…)。不加参数地执行par()将生成一个含有当前图形参数设置的列表。添加参数no.readonly=TRUE可以生成一个可以修改的当前图形参数列表。
范例:
数据源:
![](https://img.haomeiwen.com/i13777118/3cf3476b018173e4.png)
背景:你想使用实心三角而不是空心圆圈作为点的符号,并且想用虚线代替实线连接这些点。
代码如下:
dose<-c(20,30,40,45,60)
drugA<-c(16,20,27,40,60)
drugB<-c(15,18,25,31,40)
plot(dose,drugA,type="b")
opar<-par(no.readonly=TRUE)
par(lty=2,pch=17)
plot(dose,drugA,type="b")
输出结果:
![](https://img.haomeiwen.com/i13777118/9ed7fe7d14ba44ee.png)
另一种高级的代码写法是:
plot(dose,drugA,type="b",lty=2,pch=17)
但并不是所有的高级绘图函数都允许指定全部可能的图形参数。你需要参考每个特定绘图函数 的帮助(如?plot、?hist或?boxplot)以确定哪些参数可以以这种方式设置。
下一步恢复原来的图形参数:
dose<-c(20,30,40,45,60)
drugA<-c(16,20,27,40,60)
drugB<-c(15,18,25,31,40)
plot(dose,drugA,type="b")
opar<-par(no.readonly = TRUE)
par(lty=2,pch=17)
plot(dose,drugA,type="b")
par(opar)
plot(dose,drugA,type="b")
输出结果:
![](https://img.haomeiwen.com/i13777118/8583e189de2cfc6f.png)
②使用图形参数控制图形外观
代码如下:
dose<-c(20,30,40,45,60)
drugA<-c(16,20,27,40,60)
drugB<-c(15,18,25,31,40)
opar<-par(no.readonly=TRUE)
par(pin=c(2,3))
par(lwd=2,cex=1.5)
par(cex.axis=.75,font.axis=3)
plot(dose,drugA,type="b",pch=19,lty=2,col="red")
plot(dose,drugB,type="b",pch=23,lty=6,col="blue",bg="green")
par(opar)
输出结果:
![](https://img.haomeiwen.com/i13777118/2261dd66f0d8a90c.png)
![](https://img.haomeiwen.com/i13777118/e9e6096afd15475e.png)
代码分析:
行1-3 以向量的形式输入数据,分别保存在dose、drugA、drugB中;
行4 保存了当前的图形参数设置,这样就可以在稍后恢复默认设置;
行5 修改图形设置,宽为2英寸,高为3英寸;
行5 修改图形设置,线条宽度为默认宽度的两倍,符号为默认大小的1.5倍;
行6 修改图形设置,坐标轴刻度文本大小为原来的75%,字体设置为斜体;
行7 绘图一:dose为横坐标,drugA为纵坐标,描述drugA与dose之间的关系,实心圆,虚线,线条红色;
行8 绘图二:dose为横坐标,drugB为纵坐标,描述drugA与dose之间的关系,菱形、虚线、线条蓝色、背景颜色为绿色;
行9 恢复默认设置;
注意:
通过par()设定的参数对两幅图都有效,而在plot()函数中指定的参数仅对那个特定图形有效
③添加文本、自定义坐标轴和图例
在上述②的实例上,在图形上增加标题(main)、副标题(sub)、坐标轴标题(xlab、ylab)和坐标轴范围(xlim、ylim)
代码如下:
plot(dose,drugA,type="b",col="red",lty=2,pch=2,lwd=2,main="Clinical Trails for Drug A",sub="This is hypothetical data",xlab="Dosage",ylab="Drug Response",xlim=c(0,60),ylim=c(0,70))
输出结果:
![](https://img.haomeiwen.com/i13777118/76eb37b77d782a65.png)