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

摘要:
显示五棵橙色树随时间增长的折线图:˃oparpar˃t1plot˃plot˃plot˃plot˃plot˃plot˃plot˃plot˃plot˃plot˃plot˃plot˃plot显示五棵橙树随时间的增长的线图˃orange$Tree树xrangeyrangeplot˂颜色线型绘图仪使用corrgram包˃库˃corrgram中的corrgram()函数以图形方式显示相关系数矩阵。默认情况下,蓝色和从左下到右上的斜线表示单元格中的两个变量正相关。相反,红色和从左上到右下的斜线呈负相关,表示变量。相关性接近0的细胞基本上是无色的。然而,第一组变量与第二组变量呈负相关。

第十一章 中级绘图

本节用到的函数有:

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)

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

参数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")

  

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

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

> 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")

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

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")

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

默认地,蓝色和从左下指向右上的斜杠表示单元格中的两个变量呈正相关。反过来,红色和从左上指向右下的斜杠表示变量呈负相关。色彩越深,饱和度越高,说明变量相关性越大。相关性接近于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选项控制着主对角线元素类型。

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

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

> 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
scatter plots and ellipse")

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

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

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

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

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

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)

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

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

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

免责声明:文章转载自《R in action读书笔记(15)第十一章 中级绘图 之二 折线图 相关图 马赛克图》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SharePoint 2016 功能比较C#将Word,Excel与Html,PDF互转下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[NS2]TCL语言基本语法

(来自:《NS2仿真实验-多媒体和无线网络通信》) 1. 变量(Variable)和变量替换(Variable Substitution)   tcl变量是在第一次使用set的指令来指派变量的值时所产生的。可以使用unset来取消这个变量。当取用或者改变变量值时,只要在变量名称前加上一个“$”,就可以取用或改变变量内的值。指令eval用于执行一个tcl s...

sqlserver 表循环-游标、表变量、临时表

SQL Server遍历表的几种方法 阅读目录 使用游标 使用表变量 使用临时表 在数据库开发过程中,我们经常会碰到要遍历数据表的情形,一提到遍历表,我们第一印象可能就想到使用游标,使用游标虽然直观易懂,但是它不符合面向集合操作的原则,而且性能也比面向集合低。当然,从面向集合操作的角度出发,也有两种方法可以进行遍历表的操作,总结起来,遍历表有下面...

easyExcel自动合并单元格

来源EasyExcel(根据条件动态合并单元格的重复数据) package com.ustcinfo.fn.comp.complain.util; import com.alibaba.excel.metadata.CellData; import com.alibaba.excel.metadata.Head; import com.alibaba.e...

黄聪:mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法

mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法分析总结: 话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天添加的文章总数并且按照时间从大到小排序,则查询语句如下: select * from `article` where date_format(from_UNI...

C/C++获取系统当前时间

C/C++获取系统当前时间   C库中与系统时间相关的函数定义在<time.h>头文件中, C++定义在<ctime>头文件中。 一、time(time_t*)函数 函数定义如下: time_t time (time_t* timer); 获取系统当前日历时间 UTC 1970-01-01 00:00:00开始的unix时间戳参数:...

sql编程命名规范

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> 一、表名1、基础表(一般整个系统都要用到,三个子系统以上用到都算作基础表) ba开头,后面用英文单词,首字母大写,需要多个英文词的每个单词首字母大写 如baDepartment b...