本章,我们主要关注用于展示双变量间关系和多变量间关系的绘图方法
11.1散点图
散点图可以用来描述两个连续型变量间的关系。
R中创建散点图的基础函数是plot(x,y),其中,x和y是数值型向量,代表着图形中的(x,y)点
代码示例
attach(mtcars)
plot(wt,mpg,
main="Basic Scatter plot of MPG vs. Weight",
xlab="Car Weight (1bs/1000)",
ylab = "Miles Per Gallon ",
pch=19)
abline(lm(mpg~wt),col="red",lwd=2,lty=1)
#其中lowess()函数用来添加一条平滑曲线。
#该平滑曲线是一种基于局部加权多项式回归的非参数方法(可以看做线性回归的一种方式)
#lowess()返回回归后的$x值和$y值
lines(lowess(wt,mpg),col="blue",lwd=2,lty=2)
car包中的scatterplot()函数增强了散点图的许多功能
scatterplot()可以很方便地绘制散点图,并能添加拟合曲线,边界箱线图和置信椭圆,还可以按子集绘图和交互式地识别点
代码示例
library(car)
attach(mtcars)
#参数legend可以为图形添加图例,参数boxplots="xy"可以添加x轴变量及y轴变量的箱线图
#参数id=TRUE它标识(在每个组中)Mahalanobis距离数据中心最大的两个点,在car中的所有图形函数中,id的默认行为并不相同,因为使用的方法取决于绘图的类型。
scatterplot(mpg~wt|cyl,data=mtcars,lwd=2,
main="Basic Scatter plot of MPG vs. Weight by # Cylinders",
xlab="Weight of Car (lbs/1000)",
ylab="Miles Per Gallon",
legend=TRUE,
boxplots="xy",
id=TRUE
)
11.1.1 散点图矩阵
pairs()函数可以创建基础的散点图矩阵。
代码示例
pairs(~mpg + disp + drat + wt, data=mtcars,
main="Basic Scatter Plot Matrix")
从图中可以看到所有的变量间的二元关系。
需要注意的是主对角线的上方和下方的六幅散点图是相同的。可以通过参数,是的图形只显示上三角或下三角,例如upper.panel=NULL将只生成下三角图形
car包中的scatterplotMatrix()函数也可以生成散点图矩阵,并有一下可选操作
1,以某个因子为条件绘制散点图矩阵;
2,包含线性和平滑拟合曲线;
3,在主对角线放置箱线图,密度图或者直方图
4,在各单元格的边界添加轴须图
library(car)
#参数smooth=list(method=loessLine,spread=FALSE,lty.smooth=2,col.smooth='red')设定了平滑曲线的类型,颜色及线型,
#spread = FALSE表示不添加展示分散度和对称信息的直线
#diagonal可以设定一系列关于对角线图形的设置,比如选择显示密度图还是直方图等,diagonal=FALSE则不显示对角线图形
#regLine可以设定拟合直线的相关设定
scatterplotMatrix(~mpg + disp + drat + wt, data=mtcars,
main="Scatter Plot Matrix via car Pachage",
regLine=list(mod=lm,col="green",lty=1),
smooth=list(method=loessLine,spread=FALSE,lty.smooth=2,col.smooth='red'),
diagonal=TRUE)
R语言提供了许多其他的方式来创建散点图矩阵例如
glus包中的cpars()函数,TeachingDemos包中的pairs2()函数,HH包中的xysplom()函数,ResourceSelection包中的kepairs()函数SMPracticals包中的pairs.mod()函数
小结:
1,绘制散点图的基础函数可以使用plot()函数
2,car包中的scatterplot()函数也是用来绘制散点图的,但是相对于Plot()函数,它可以添加拟合曲线,拟合直线,边界箱线图等附件。算是绘制散点图的高级函数。
3,绘制散点图矩阵的基础函数为pairs()函数
4,car包中的scatterplotMatrix()函数也可以绘制散点图矩阵,但是相对于pairs()函数来说,它可以添加拟合曲线,拟合直线,轴须图,并在主对角线上绘制箱线图,密度图或者直方图。算是绘制散点图矩阵的高级函数。