r语言绘制两组散点图(用R语言做数据分析)
r语言绘制两组散点图(用R语言做数据分析)R语言至少有四种创建散点图矩阵的实用函数。pairs()函数可以创建基础的散点图矩阵,例如,我们创建一个包含mpg、disp、drat和wt四个变量的散点图矩阵:默认地,各子集会通过颜色和图形符号加以区别,并同时绘制线性拟合和平滑拟合曲线。平滑拟合默认需要五个单独的数据点。id.method 选项的设定表明可通过鼠标单击来交互式地识别数据点。labels选项的设定表明可通过点的行名称来识别点。legend.plot选项表明在边界加图例,而boxplots选项用于绘制边界箱线图。 xlab = "Car Weight (1bs/1000)" ylab = "Miles Per Gallon" pch=19)> abline(lm(mpg~wt) col="red" lwd=2 lty=1)> lines(lowess(wt mpg) col="blue" lwd=2 lty=
之前了解到,散点图可用来描述两个连续型变量间的关系。之后的几篇文章,我们首先描述一个二元变量关系(x-y) 然后探究各种通过添加额外信息来增强图形表达功能的方法。接着,我们将学习如何把多个散点图组合起来形成一个散点图矩阵,以便可以同时浏览多个二元变量关系。最后,通过添加第三个连续型变量,我们能把二维图形扩展到三维,包括三维散点图和气泡图,它们能够帮助你更好地更迅速理解三变量间的多元关系。
plot()函数散点图R语言创建散点图的基础函数是plot(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)
> lines(lowess(wt mpg) col="blue" lwd=2 lty=2)
默认地,各子集会通过颜色和图形符号加以区别,并同时绘制线性拟合和平滑拟合曲线。平滑拟合默认需要五个单独的数据点。id.method 选项的设定表明可通过鼠标单击来交互式地识别数据点。labels选项的设定表明可通过点的行名称来识别点。legend.plot选项表明在边界加图例,而boxplots选项用于绘制边界箱线图。
散点图矩阵R语言至少有四种创建散点图矩阵的实用函数。pairs()函数可以创建基础的散点图矩阵,例如,我们创建一个包含mpg、disp、drat和wt四个变量的散点图矩阵:
从图中可以看到所有指定变量间的二元关系。值得注意的是,主对角线的上方和下方的六福散点图是相同的。通过参数调整可以之战士下三角或者上三角的图形。例如,选项upper.panel = NULL将只生成下三角的图形。
car包中的scatterplotMatrix()函数也可以生成散点图矩阵,并有以下可选操作:
-
以某个因子为条件绘制散点图矩阵;
-
包含线性和平滑拟合曲线;
-
在主对角线防止箱线图、密度图或者直方图;
-
在各单元格的百年姐添加轴须图。
>library(car)
> scatterplot.matrix(~mpg disp drat wt data=mtcars spread=FALSE lty.smooth=2 main="Scatter Plot Matrix via car Package")
从图中可以看到,线性和平滑拟合曲线被默认添加,主对角线处添加了核密度曲线和轴须图。spread=FALSE选项表示不添加分散度和对称信息的直线,lty.smooth=2设定平滑拟合曲线使用虚线。
gclus包中cpairs()函数提供了一个有趣的散点图矩阵变种,它含有重排矩阵中变量位置的选项,可以让相关性更高的变量更靠近主对角线。该函数还能对各单元进行颜色编码来展示变量间的相关性大小。下面考虑mpg、wt、disp和drat间的相关性:
>#从mtcars数据框中选择所需变量,并计算它们相关系数的绝对值
> cor(mtcars[c("mpg" "wt" "disp" "drat")])
mpg wt disp drat
mpg 1.0000000 -0.8676594 -0.8475514 0.6811719
wt -0.8676594 1.0000000 0.8879799 -0.7124406
disp -0.8475514 0.8879799 1.0000000 -0.7102139
drat 0.6811719 -0.7124406 -0.7102139 1.0000000
> library(gclus)
> mydata <- mtcars[c(1 3 5 6)]
> mydata.corr <- abs(cor(mydata))
#使用dmat.color()函数获取绘图的颜色,给定一个对称矩阵,函数将返回一个颜色矩阵
> mycolors <- dmat.color(mydata.corr)
#通过order.single()函数重排对象,使相似的对象更为靠近
> myorder <- order.single(mydata.corr)
#配置相关参数,绘制散点矩阵
> cpairs(mydata myorder panel.colors = mycolors gap=.5
main="Variables Ordered and Colored by Correlation")
从图中可以看出,相关性最高的变量对是车重和排量,以及每加仑英里数与车重(标记红色,离主对角线最近)。相关性最低的是后轴与每加仑英里数(标记黄色,离主对角线最远)。当变量数众多、变量间的相关性变化很大时,该方法特别有用。