我们都知道R拥有顶级水准的制图功能,在复杂数据的可视化方面,R完全可以提供最完备最强大的一系列可用功能。下面针对R中基础绘图的相关内容进行举例介绍。
图形设备是用来展现绘图函数的结果,就相当于一块画布,一般来说新绘制的图形往往会覆盖旧的图形。在R中绘图,我们可以选择默认的图形设备,这样比较方便,直接可用。比如输入代码:plot(1:10)绘制1到10 的散点图,绘制图形输出到默认图形设备上,如下图:
如果绘制新的图形,那么原来的图将被覆盖掉;如果选择“文件”-“另存为”可以将图形保存为png、pdf、emf等格式或单击右键选择保存为图元文件。
我们也可以不用R默认的图形设备而选择文件设备,那么绘图函数绘制的结果将保存到文件中,使用png( )、pdf( )、bmp( )等函数可以新建文件或者重写文件,最后需要使用dev.off( )函数来关闭保存。下面的代码可以将图形绘制到pdf文件中:
pdf("graph1.pdf")
attach(mtcars)
plot(wt,mpg)
abline(lm(mpg~wt))
title("车重和每公里耗油量的回归模拟",family="GB1")
detach(mtcars)
dev.off()
R的默认绘图设备的绘图机制分为高水平和低水平。高水平没有图层的概念,每一次的修改都要全部绘制;低水平可以在高水平的图形的基础上添加图的元素,可以灵活地在图形上添加新的元素。常用的统计图通过高水平图形来实现,通过低水平来添加或修改细节。通用的设置通过通行参数来修改,如图形的特征和布局的特征。【备注: mtcars数据框中的数据来源于美国汽车杂志,数据包括燃料消耗和汽车设计方面的10项的参数】
下面我们将高水平和低水平结合,通过不断添加完成绘制图形的工作:
(1)创建一个空的高水平图
plot(mtcars$wt,mtcars$mpg,xlab = "",ylab = "",type = "n",main = "Miles Gallon VS Weight")
其中,type参数可以设置绘制点图时使用的符号元素,可选的类型有:p(点)、l(线)、b(点和线)、......、n(无)。可选类型具体如图:
我们选择了“n”,结果如下:
(2)添加点
points(mtcars$wt,mtcars$mpg,bg=4+mtcars$am,pch=21,cex=1.5)
points(mtcars$wt,mtcars$mpg,col="red",pch=21,cex=1.5)
其中,参数pch代表绘图使用的符号,可以是下图中的任一个:
对于这些符号,可以通过col设置外圈颜色,通过bg设置内部的填充颜色。当然,对于1~14空心符号设置bg是没有反应的,同理对于15~20的实心符号设置bg也是没有反应的(这些符号的颜色跟col保持一致)。
添加点之后图形为:
(3)添加图例
legend("topright",legend = unique(mtcars$am),pch = 21,pt.bg = unique(4+mtcars$am),cex=1.5)
需要指定图例的位置以及各种属性,结果如下:
(4)添加文字
将每种车型的前进挡数量添加到对应小点的旁边
text(mtcars$wt,jitter(mtcars$mpg),mtcars$gear,cex=1.5)
其中,添加的文字的位置可以通过参数pos决定,pos的值1(下方)、2(左方)、3(上方)、4(右方)。结果如下:
(5)添加参考线
函数abline( )可以用来为图形添加参考线。其形式为:
abline(a = NULL, b = NULL, h = NULL, v = NULL, reg = NULL, coef = NULL, untf = FALSE, ...)主要参数:
a:截距,单个值
b:斜率,单个值
h:水平线 即例如y=3
v:垂直线 即例如x=2
使用代码abline(v=2:6,lty=2,col="grey")添加参考线,线条类型参数lty设置为2。其中常用的线条类型如下图所示:
添加参考线后结果如下图:
(6)添加平滑曲线
lines(smooth.spline(mtcars$wt,mtcars$mpg,df=5),col="darkorange",cex=1.5)
smooth.spline( )添加一个三次样条曲线,df指定了它的自由度。结果如下图所示:
(7)添加矩形
rect(2,15,5,25,col = "NA")
绘图参数可以通过par函数设置修改,也可以通过绘图函数设置参数。绘图函数默认参数放在一个列表par中,使用par(no.readonly=TRUE)可以查看所有参数。实际中并不建议直接修改par进行全局设置(关闭图形设备时,全局设置会自动还原),最好通过绘图函数设置。