本章,我们主要关注用于展示双变量间关系和多变量间关系的绘图方法
本节主要讲述:三维散点图,旋转的三维散点图,气泡图
三维散点图
使用函数scatterplot3d()绘制三维散点图
示例
install.packages("scatterplot3d")
library(scatterplot3d)
attach(mtcars)
scatterplot3d(wt,disp,mpg,main="Basic 3D Scatter Plot")
scatterplot3d()函数提供了许多选项,包含设置图形符号,轴,颜色,线条,网格线,突出显示和角度等功能。
代码示例:
library(scatterplot3d)
attach(mtcars)
scatterplot3d(wt,disp,mpg,
pch=16,
#点的颜色将随着y坐标的不同而不同
highlight.3d = TRUE,
#添加连接点与水平面的垂直线
type="h",
main="Basic 3D Scatter Plot")
添加一个回归面
代码示例
library(scatterplot3d)
attach(mtcars)
s3d <- scatterplot3d(wt,disp,mpg,
pch=16,
#点的颜色将随着y坐标的不同而不同
highlight.3d = TRUE,
#添加连接点与水平面的垂直线
type="h",
main="Basic 3D Scatter Plot")
fit <- lm(mpg~wt+disp)
#图形利用多元回归方程,对通过车重和排量预测每加仑英里数进行可视化处理,平面代表预测值。点表示实际值
s3d$plane3d(fit)
11.1.4旋转三维散点图
R提供了一些旋转图形的功能,让你能够从多个角度观测绘制的数据点
rgl包中的plot3d()函数可以创建交互的三维散点图。可以通过鼠标对图形进行旋转。函数格式为
plot3d(x,y,z)
其中x,y,z是数值型向量,代表着各个点。
代码示例
library(rgl)
attach(mtcars)
#参数size可以控制点的大小
plot3d(wt,disp,mpg,col="red",size=5)
car包中的scatter3d()也有类似的功能
scatter3d()函数可包含各种回归曲面,比如线性,二次,平滑和附加等类型。图形默认添加线性平面。
library(car)
attach(mtcars)
scatter3d(wt,disp,mpg)
11.1.5 气泡图
展示三个定量变量之间的关系,可以先创建一个二维散点图,然后用点的大小来代表第三个变量的值。这便是气泡图
symbols()函数可以创建气泡图
symbols()函数可以在指定的(x,y)坐标上绘制圆圈图,方形图,星形图,温度计图,箱线图
绘制圆圈图代码
symbols(x,y,circle = radius)
其中x,y,radius是需要设定的向量,分别表示x,y坐标和圆圈的半径
如果想用面积而不是半径来表示第三个变量,可以使用公式
symbols(x,y,circle=sqrt(z/pi))
z是第三个要绘制的变量
代码示例
attach(mtcars)
#以面积来表示向量disp的大小
r <- sqrt(disp/pi)
#inches是比例因子,控制着圆圈大小,fg指定圆圈边界的颜色,bg指定圆圈的颜色
symbols(wt,mpg,circle=r,inches = 0.3,
fg="white",bg="lightblue",
main="Bubble Plot with point size proportional to displacement",
ylab="Mile Per Gallon",
xlab="Weight of Car (lbs/1000)")
text(wt,mpg,labels=row.names(mtcars),cex = 0.5)
detach(mtcars)
attach(mtcars)
#以面积来表示向量disp的大小
r <- sqrt(disp)
#inches是比例因子,控制着圆圈大小,fg指定圆圈边界的颜色,bg指定圆圈的颜色
symbols(wt,mpg,circle =r,inches = 0.3,
fg="white",bg= 1:11,
main="Bubble Plot with point size proportional to displacement",
ylab="Mile Per Gallon",
xlab="Weight of Car (lbs/1000)")
text(wt,mpg,labels=row.names(mtcars),cex = 0.5)
小结:
绘制三维散点图可以使用scatterplot3d包中的scatterplot()函数
绘制可以旋转的三维散点图可以使用rgl包中的plot3d()函数或者car包中的scatter3d()函数
气泡图用来展示三个定量变量之间的关系,可以先创建一个二维散点图,然后用点的大小来代表第三个变量的值。
可以使用symbols()函数创建气泡图