R in action读书笔记(15)第十一章 中级绘图 之二 折线图 相关图 马赛克图

第十一章 中级绘图

本节用到的函数有:


plot


legend


corrgram


mosaic

11.2折线图

如果将散点图上的点从左往右连接起来,那么就会得到一个折线图。

创建散点图和折线图:

> opar<-par(no.readonly=TRUE)
> par(mfrow=c(1,2))
> t1<-subset(Orange,Tree==1)
> plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference (mm)",main="orange tree 1growth")
> plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference (mm)",main="orange tree 1growth",type="b")
> par(opar)

参数type =的可选值


p


只有点


l


只有线


o


实心点和线(即线覆盖在点上)


b、c


线连接点(c时不绘制点)


s、S


阶梯线


h


直方图式的垂直线


n


不生成任何点和线(通常用来为后面的命令创建坐标轴)

注意,plot()和lines()函数工作原理并不相同。plot()函数是被调用时即创建一幅新图,

而lines()函数则是在已存在的图形上添加信息,并不能自己生成图形。因此,lines()函数通常是在plot()函数生成一幅图形后再被调用。如果对图形有要求,可以先通过plot()函数中的type = n来创建坐标轴、标题和其他图形特征,然后再使用lines()函数添加各种需要绘制的曲线。

展示五种橘树随时间推移的生长状况的折线图:

> opar<-par(no.readonly=TRUE)
> par(mfrow=c(2,4))
> t1<-subset(Orange,Tree==1)
> plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference(mm)",main="type=p",type="p")
> plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference(mm)",main="type=l",type="l")
> plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference(mm)",main="type=o",type="o")
> plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference(mm)",main="type=b",type="b")
> plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference(mm)",main="type=c",type="c")
> plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference(mm)",main="type=s",type="s")
> plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference(mm)",main="type=S",type="S")
> plot(t1$age,t1$circumference,xlab="Age(days)",ylab="circumference(mm)",main="type=h",type="h")

  

展示五种橘树随时间推移的生长状况的折线图

> Orange$Tree<-as.numeric(Orange$Tree)
> ntrees<-max(Orange$Tree)
> xrange<-range(Orange$age)
> yrange<-range(Orange$circumference)
> plot(xrange,yrange,type="n",xlab="age(days)",ylab="circumference(mm)" )
> colors<-rainbow(ntrees)
> linetype<-c(1:ntrees)
> plotchar<-seq(18,18+ntrees,1)
> for(i in 1:ntrees){tree<-subset(Orange,Tree==i), lines(tree$age,tree$circumference, type="b", lwd=2, lty=linetype[i],col=colors[i], pch=plotchar[i] ) }
> title("tree growth","example of lineplot")
> legend(xrange[1],yrange[2], 1:ntrees, cex=.8, pch=plotchar, lty=linetype, title="tree")

  

11.3 相关图

利用corrgram包中的corrgram()函数,可以以图形方式展示该相关系数矩阵

> library(corrgram)
> corrgram(mtcars,order=TRUE,lower.panel=panel.shade,upper.panel=panel.pie,text.panel=panel.txt, main="correlogram of mtcarsintercorrelations")

默认地,蓝色和从左下指向右上的斜杠表示单元格中的两个变量呈正相关。反过来,红色和从左上指向右下的斜杠表示变量呈负相关。色彩越深,饱和度越高,说明变量相关性越大。相关性接近于0的单元格基本无色。本图为了将有相似相关模式的变量聚集在一起,对矩阵的行和列都重新进行了排序(使用主成分法)。从图中含阴影的单元格中可以看到,gear、am、drat和mpg相互间呈正相关,wt、disp、hp和carb相互间也呈正相关。但第一组变量与第二组变量呈负相关。还可以看到carb和am、vs和gear、vs和am以及drat和qsec四组变量间的相关性很弱。上三角单元格用饼图展示了相同的信息。颜色的功能同上,但相关性大小由被填充的饼图块的大小来展示。正相关性将从12点钟处开始顺时针填充饼图,而负相关性则逆时针方向填充饼图。

corrgram()函数的格式如下:

corrgram(x, type=NULL, order = FALSE, labels,panel=panel.shade,
lower.panel=panel,upper.panel=panel,diag.panel=NULL,text.panel=textPanel,label.pos=c(0.5, 0.5), label.srt=0, cex.labels=NULL,font.labels=1,row1attop=TRUE, dir="",gap=0,abs=FALSE,col.regions=colorRampPalette(c("red","salmon","white","royalblue","navy")),cor.method="pearson", ...)

可以通过选项lower.panel 和upper.panel来分别设置主对角线下方和上方的元素类型。而text.panel和diag.panel选项控制着主对角线元素类型。

在下三角区域使用平滑拟合曲线和置信椭圆,上三角区域使用散点图:

> library(corrgram)
> corrgram(mtcars,order=TRUE,lower.panel=panel.ellipse,upper.panel=panelNaNs,text.panel=panel.txt,lwd=1.5,diag.panel=panel.minmax,main="correlogram of mtcars using\nscatter plots and ellipse")

mtcars数据框中变量的相关系数图。下三角区域包含平滑拟合曲线和置信椭圆,上三角区域包含散点图。主对角面板包含变量最小和最大值。矩阵的行和列利用主成分分析法进行了重排序

> library(corrgram)
> corrgram(mtcars,lower.panel=panel.shade,upper.panel=NULL,text.panel=panel.txt, lwd=1.5, main="Car mileage data(unsorted)")

下三角区域使用了阴影,并保持原变量顺序不变,上三角区域留白。下三角区域的阴影代表相关系数的大小和正负。变量按初始顺序排列.

11.4 马赛克图

若只观察单个类别型变量,可以使用柱状图或者饼图;若存在两个类别型变量,可以使用三维柱状图;若有两个以上的类别型变量,一种办法是绘制马赛克图(mosaic plot)。在马赛克图中,嵌套矩形面积正比于单元格频率,其中该频率即多维列联表中的频率。颜色和/或阴影可表示拟合模型的残差值。vcd包中的mosaic()函数可以绘制马赛克图

> ftable(Titanic)
Survived No Yes
Class Sex Age
1st Male Child 0 5
Adult 118 57
FemaleChild 0 1
Adult 4 140
2nd Male Child 0 11
Adult 154 14
FemaleChild 0 13
Adult 13 80
3rd Male Child 35 13
Adult 387 75
FemaleChild 17 14
Adult 89 76
Crew Male Child 0 0
Adult 670 192
FemaleChild 0 0
Adult 3 20

mosaic()函数可按如下方式调用

mosaic(table)

其中table是数组形式的列联表。另外,也可用:

> library(vcd)
> mosaic(Titanic,shade=TRUE,legend=TRUE)

> library(vcd)
> mosaic(~Class+Sex+Age+Survived,data=Titanic,shade=TRUE,legend=TRUE)

按船舱等级、乘客性别和年龄层绘制的泰坦尼克号幸存者的马赛克图

时间: 2024-10-11 07:34:24

R in action读书笔记(15)第十一章 中级绘图 之二 折线图 相关图 马赛克图的相关文章

R in action读书笔记(14)第十一章 中级绘图 之一:散点图(高能预警)

第十一章中级绘图 本章内容: 二元变量和多元变量关系的可视化 绘制散点图和折线图 理解相关图 学习马赛克图和关联图 本章用到的函数有: plot hexbin ablines iplot scatterplot scatterplot3d pairs plot3d scatterplotMatrix scatter3d cpairs symbols smoothScatter   11.1散点图 添加了最佳拟合曲线的散点图 > attach(mtcars) > plot(wt,mpg,main

R in action读书笔记(22)第十六章 高级图形进阶(下)

16.2.4 图形参数 在lattice图形中,lattice函数默认的图形参数包含在一个很大的列表对象中,你可通过trellis.par.get()函数来获取,并用trellis.par.set()函数来修改.show.settings()函数可展示当前的图形参数设置情况.查看当前的默认设置,并将它们存储到一个mysettings列表中: > show.settings() > mysettings<-trellis.par.get() 查看叠加点的默认设置值: > mysett

R in action读书笔记(5)-第七章:基本统计分析

7.1描述性统计分析 > vars<-c("mpg","hp","wt") > head(mtcars[vars])                    mpg  hp    wt Mazda RX4         21.0 110 2.620 Mazda RX4 Wag     21.0 110 2.875 Datsun 710        22.8  93 2.320 Hornet 4 Drive    21.4 11

R in action读书笔记(19)第十四章 主成分和因子分析

第十四章:主成分和因子分析 本章内容 主成分分析 探索性因子分析 其他潜变量模型 主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分.探索性因子分析(EFA)是一系列用来发现一组变量的潜在结构的方法.它通过寻找一组更小的.潜在的或隐藏的结构来解释已观测到的.显式的变量间的关系. PCA与EFA模型间的区别 主成分(PC1和PC2)是观测变量(X1到X5)的线性组合.形成线性组合的权重都是通过最大化各主成分所解释的方差来获得,同时还要保证个

R in action读书笔记(17)第十二章 重抽样与自助法

12.4 置换检验点评 除coin和lmPerm包外,R还提供了其他可做置换检验的包.perm包能实现coin包中的部分功能,因此可作为coin包所得结果的验证.corrperm包提供了有重复测量的相关性的置换检验. logregperm包提供了Logistic回归的置换检验.另外一个非常重要的包是glmperm,它涵盖了广义线性模型的置换检验依靠基础的抽样分布理论知识,置换检验提供了另外一个十分强大的可选检验思路.对于上面描述的每一种置换检验,我们完全可以在做统计假设检验时不理会正态分布.t分

R in action读书笔记(6)-第七章:基本统计分析(下)

7.3相关 相关系数可以用来描述定量变量之间的关系.相关系数的符号(±)表明关系的方向(正相关或负相关),其值的大小表示关系的强弱程度(完全不相关时为0,完全相关时为1).除了基础安装以外,我们还将使用psych和ggm包. 7.3.1 相关的类型 1.Pearson.Spearman和Kendall相关 Pearson积差相关系数衡量了两个定量变量之间的线性相关程度.Spearman等级相关系数则衡 量分级定序变量之间的相关程度.Kendall’s Tau相关系数也是一种非参数的等级相关度量.

R in action读书笔记(13)第十章 功效分析

功效分析 功效分析可以帮助在给定置信度的情况下,判断检测到给定效应值时所需的样本量.反过来,它也可以帮助你在给定置信度水平情况下,计算在某样本量内能检测到给定效应值的概率.如果概率低得难以接受,修改或者放弃这个实验将是一个明智的选择. 10.1假设检验速览 在研究过程时,研究者通常关注四个量:样本大小.显著性水平.功效和效应值.样本大小指的是实验设计中每种条件/组中观测的数目.显著性水平(也称为alpha)由I型错误的概率来定义.也可以把它看做是发现效应不发生的概率.功效通过1减去II型错误的概

R in action读书笔记(21)第十六章 高级图形进阶(上)

16.1 R 中的四种图形系统 基础图形函数可自动调用,而grid和lattice函数的调用必须要加载相应的包(如library(lattice)).要调用ggplot2函数需下载并安装该包(install.packages("ggplot2")),第一次使用前还要进行加载(library(ggplot2)). 16.2 lattice 包 lattice包为单变量和多变量数据的可视化提供了一个全面的图形系统.在一个或多个其他变量的条件下,栅栏图形展示某个变量的分布或与其他变量间的关系

R in action读书笔记(11)-第八章:回归-- 选择“最佳”的回归模型

8.6 选择“最佳”的回归模型 8.6.1 模型比较 用基础安装中的anova()函数可以比较两个嵌套模型的拟合优度.所谓嵌套模型,即它的一 些项完全包含在另一个模型中 用anova()函数比较 > states<-as.data.frame(state.x77[,c("Murder","Population","Illiteracy","Income","Frost")]) > fit1