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

16.1 R 中的四种图形系统

基础图形函数可自动调用,而grid和lattice函数的调用必须要加载相应的包(如library(lattice))。要调用ggplot2函数需下载并安装该包(install.packages("ggplot2")),第一次使用前还要进行加载(library(ggplot2))。

16.2 lattice

lattice包为单变量和多变量数据的可视化提供了一个全面的图形系统。在一个或多个其他变量的条件下,栅栏图形展示某个变量的分布或与其他变量间的关系。

> library(lattice)
> histogram(~height|voice.part,data=singer,main="Distributionof heights by voice pitch",xlab="height (inches)")

lattice包提供了丰富的函数,可生成单变量图形(点图、核密度图、直方图、柱状图和箱线图)、双变量图形(散点图、带状图和平行箱线图)和多变量图形(三维图和散点图矩阵)。各种高级绘图函数都服从以下格式:

graph_function(formula,data=,options)

graph_function是某个函数。

formula指定要展示的变量和条件变量。

data指定一个数据框。

options是逗号分隔参数,用来修改图形的内容、摆放方式和标注。

lattice中高级绘图函数的常见选项

lattice绘图示例:

> gear<-factor(gear,levels=c(3,4,5),labels=c("3 gears","4 gears","5 gears"))
> cyl<-factor(cyl,levels=c(4,6,8),labels=c("4 cylinders","6 cylinders","8 cylinders"))
> densityplot(~mpg,main="Density plot",xlab="miles per gallon")

> densityplot(~mpg | cyl,main="Density plot by number of cylinders",xlab="miles per gallon")

> bwplot(cyl~mpg|gear,main="box plots by cylinders and gears",xlab="carweight",ylab="cylinders")

> xyplot(mpg~wt|cyl*gear,main="scatter plots by cylinders and gears",xlab="car weight",ylab="miles per gallon")

> cloud(mpg~wt*qsec|cyl,main="d scatter plots by cylinders")

> dotplot(cyl~mpg|gear,main="dot plots by number of gears and cylinders",xlab="miles per gallon"

> splom(mtcars[c(1,4,5,6)],main="scatter plot matrix for mtcars data")

16.2.1 条件变量

> myshingle<-equal.count(x,number=#,overlap=proportion)

将会把连续型变量x分割到#区间中,重叠度为proportion,每个数值范围内的观测数相等,并返回为一个变量myshingle(或类shingle)。输出或者绘制该对象(如plot(myshingle))将会展示瓦块区间。一旦一个连续型变量被转换为一个瓦块,你便可以将它作为一个条件变量使用。

> displacement<-equal.count(mtcars$disp,number=3,overlap=0)
> xyplot(mpg~wt|displacement,data=mtcars,
+        main="miles per gallon vs weight by engine displacement",
+        xlab="weight",ylab="miles per gallon",
+        layout=c(3,1),aspect=1.5)

16.2.2 面板函数

每个高级绘图函数都调用了一个默认的函数来绘制面板。这些默认的函数服从如下命名惯例:panel.graph_function,其中graph_function是该水平绘图函数。如:xyplot(mpg~wt|displacement,data=mtcars)也可以写成:xyplot(mpg~wt|displacement,data=mtcars,panel=panel.xyplot)。自定义面板函数的xyplot:

>displacement<-equal.count(mtcars$disp,number=3,overlap=0)

> mypanel<-function(x,y){

+ panel.xyplot(x,y,pch=19)

+ panel.rug(x,y)

+ panel.grid(h=-1,v=-1)

+ panel.lmline(x,y,col="red",wd=1,lty=2)

+ }

>xyplot(mpg~wt|displacement,data=mtcars,

+ layout=c(3,1),

+ aspect=1.5,

+ main="miles per gallon vs weightby engine displacement",

+ xlab="weight",ylab="miles per gallon",

+ pannel=mypanel)

自定义面板函数和额外选项的xyplot

> library(lattice)

>mtcars$transmission<-factor(mtcars$am,levels=c(0,1),

+ labels=c("Automatic","Manual"))

> panel.smoother<-function(x,y){

+ panel.grid(h=-1,v=-1)

+ panel.xyplot(x,y)

+ panel.loess(x,y)

+ panel.abline(h=mean(y),lwd=2,lty=2,col="green")

+ }

> xyplot(mpg~disp|transmission,data=mtcars,

+ scales=list(cex=.8,col="red"),

+ panel=panel.smoother,

+ xlab="displacement",ylab="miles per gallon",

+ main="mpg vs displacement bytransmission typr",

+ sub="dotted lines are group means",aspect=1)

16.2.3 分组变量

当一个lattice图形表达式含有条件变量时,将会生成在该变量各个水平下的面板。若你想将结果叠加到一起,则可以将变量设定为分组变量(grouping variable).

> library(lattice)

>mtcars$transmission<-factor(mtcars$am,levels=c(0,1),

+ labels=c("Automatic","Manual"))

> densityplot(~mpg,data=mtcars,

+ group=transmission,

+ main="mpg distributuion bytransmission type",

+ xlab="miles per gallon",

+ auto.key=TRUE)

对图例进行更多的控制,可使用key =选项

> library(lattice)

> mtcars$transmission<-factor(mtcars$am,levels=c(0,1),

+ labels=c("Automatic","Manual"))

>colors=c("red","blue")#设定颜色、线和点类型

> lines=c(1,2)

> points=c(16,17)

>key.trans<-list(title="Transmission",#自定义图例

+ space="bottom",columns=2,

+ text=list(levels(mtcars$transmission)),

+ points=list(pch=points,col=colors),

+ lines=list(col=colors,lty=lines),

+ cex.title=1,cex=.9)

>densityplot(~mpg,data=mtcars,

+ group=transmission,

+ main="mpg distributuion bytransmission type",

+ xlab="miles per gallon",

+ pch=points,lty=lines,col=colors,#自定义密度图

+ lwd=2,jitter=.005,

+ key=key.trans)

包含分组变量和条件变量以及自定义图例的xyplot

> library(lattice)

>colors="darkgreen"

> symbols<-c(1:12)

> linetype<-c(1:3)

>

>key.species<-list(title="plant",

+ space="right",

+ text=list(levels(CO2$Plant)),

+ points=list(pch=symbols,col=colors))

>

>xyplot(uptake~conc|Type*Treatment,data=CO2,

+ group=Plant,

+ type="o",

+ pch=symbols,col=colors,lty=linetype,

+ main="carbon dioxide uptake\ningrass plants",

+ ylab=expression(paste("Uptake",

+ bgroup("(",italic(frac("umol","m"^2)),")"))),

+ xlab=expression(paste("Concenteation",

+ bgroup("(",italic(frac(mL,L)),")"))),

+ sub="Grass species:echinochloacrus-gailli",

+ key=key.species)

时间: 2024-10-10 18:23:33

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

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读书笔记(8)-第八章:回归(上)

8.1回归的多面性 8.2 OLS回归 OLS回归拟合模型形式: 为了能够恰当地解释oLs模型的系数,数据必须满足以下统计假设. 口正态性对于固定的自变量值,因变量值成正态分布. 口独立性Yi值之间相互独立. 口线性因变量与自变量之间为线性相关. 口同方差性因变量的方差不随自变量的水平不同而变化.也可称作不变方差,但是说同方差性感觉上更犀利. 8.2.1用lm()拟合回归模型 myfit<-lm(formula,data) formula指要拟合的模型形式,data是一个数据框,包含了用于拟合模

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

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

R in action读书笔记(16)第十二章 重抽样与自助法之 置换检验

第十二章:重抽样与自助法 本章,我们将探究两种应用广泛的依据随机化思想的统计方法:置换检验和自助法 12.1 置换检验 置换检验,也称随机化检验或重随机化检验. 有两种处理条件的实验,十个受试者已经被随机分配到其中一种条件(A或B)中,相应的结果变量(score)也已经被记录.实验结果如下: 如果两种处理方式真的等价,那么分配给观测得分的标签(A处理或B处理)便是任意的.为检验两种处理方式的差异,我们可遵循如下步骤: (1) 与参数方法类似,计算观测数据的t统计量,称为t0: (2) 将10个得

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

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

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读书笔记(6)-第七章:基本统计分析(中)

7.2 频数表和列联表 > library(vcd) > head(Arthritis) ID Treatment Sex Age Improved 1 57 Treated Male 27 Some 2 46 Treated Male 29 None 3 77 Treated Male 30 None 4 17 Treated Male 32 Marked 5 36 Treated Male 46 Marked 6 23 Treated Male 58 Marked 7.2.1 生成频数表

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型错误的概