




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据分析
(方法与案例)
作者贾俊平版权所有违者必究StatisticswithR统计学R语言第2章数据的可视化2.1
数据的频数分布2.2类别数据的可视化2.3数值数据的可视化3.4洛伦茨曲线2.5ggplot2绘图的一个示例2.5使用图表的注意事项isualizationV2.1数据的频数分布
2.1.1类别数据的频数分布
2.1.2数值数据的类别化第2章数据的可视化2.1.1类别数据的频数分布2.1数据的频数分布2018-9-25类别数据的频数分布表生成频数表一个类别变量——简单频数表两个类别变量——二维列联表多个类别变量——多维列联表计算描述统计量频数(frequency):落在各类别中的数据个数比例(proportion):某一类别数据个数占全部数据个数的比值百分比(percentage):将对比的基数作为100而计算的比值比率(ratio):不同类别数值个数的比值2018-9-25生成频数分布表
(类别数据)【例2-1】(example2_1)某物业管理公司准备进行一项物业管理的改革措施,为征求社区居民的意见,在所管理的4个社区随机调查80个住户,对户主进行调查。表2—1是被调查者所在的社区、被调查者的性别及其对该项改革措施的态度数据。生成简单频数分布表,观察被调查者所在的社区、性别以及对改革措施态度的分布状况2018-9-25单变量简单频数表#使用summary函数生成频数分布表#生成被调查者所在社区的频数分布表,并将频数分布表转化成百分比#生成被调查者性别的频数分布表,并将频数表转化成百分比#生成被调查者态度的频数分布表,并将频数表转化成百分比load("C:/example/ch2/example2_1.RData")summary(example2_1)count1<-table(example2_1$社区);count1prop.table(count1)*100count2<-table(example2_1$性别);count2prop.table(count2)*100count3<-table(example2_1$态度);count3prop.table(count3)*1002018-9-25双变量二维列联表#社区与性别的二维列联表,增加边际和,并将列联表转化成百分比#社区与态度的二维列联表,增加边际和,并将列联表转化成百分比#性别与态度的列联表,增加边际和,并将列联表转化为百分比表
mytable1<-table(example2_1$社区,example2_1$性别)addmargins(mytable1)addmargins(prop.table(mytable1))*100mytable2<-table(example2_1$社区,example2_1$态度)addmargins(mytable2)addmargins(prop.table(mytable2))*100mytable3<-table(example2_1$性别,example2_1$态度)addmargins(mytable3)
addmargins(prop.table(mytable2))*1002018-9-25列联表的描述性分析
(双变量百分比列联表)#使用CrossTable函数生成二维列联表(以被调查者性别与态度的二维列联表为例)library(gmodels)CrossTable(example2_1$性别,example2_1$态度)2018-9-25多变量多维列联表#行变量为被调查者所属社区和性别,列变量为态度的三维列联表
#生成行变量为被调查者性别和态度,列变量为社区的三维列联表#为列联表mytable2增加边际和#将列联表mytable2转化为百分比表load("C:/example/ch2/example2_1.RData")mytable1<-ftable(example2_1);mytable1mytable2<-ftable(example2_1,row.vars=c("性别","态度"),col.var="社区");mytable2ftable(addmargins(table(example2_1$性别,example2_1$态度,example2_1$社区)))ftable(addmargins(prop.table(table(example2_1$性别,example2_1$态度,example2_1$社区)))*100)2.1.1数值数据的类别化2.1数据的频数分布2018-9-25数值数据的类别化
(例题分析)【例2-2】一家购物网站连续120天的销售额数据。生成一张频数分布表观察销售额的分布特征net2721972251832002172102051911861812361721952222532052172242382251982521962012062122372042161991961872392242482182172242341881992161962021812172181881992402002431981932072142032252351911722462082031722062192222202042342071992612072152072092381921612432522032162652222261962122541672002182052152182282331941712032382352092332262292062412032242002082102162232302432018-9-25数值数据的类别化
2018-9-25数值数据的类别化#把销售额以10为间隔分组(计算各组频数、百分比和累积百分比)load("C:/example/ch2/example2_2.RData")vector2_2<-as.vector(example2_2$销售额)library(plyr)count<-table(round_any(vector2_2,10,floor))count<-as.numeric(count)pcount<-prop.table(count)*100cumsump<-cumsum(pcount)name<-paste(seq(160,270,by=10),"-",seq(170,280,by=10),sep="")gt<-data.frame("频数"=count,"频数百分比"=pcount,"累积频数百分比"=cumsump,s=name)round(gt,4)2018-9-25数值数据的类别化
(用cut函数进行分组)#使用“cut”函数,将【例2—2】分成间隔为10的组(不比考虑组数,有了间隔,组数自然就确定了)load("C:/example/ch2/example2_2.RData")vector2_2<-as.vector(c(example2_2$销售额))d<-table(cut(vector2_2,breaks=10*(16:28),right=FALSE))dd<-data.frame(d)percent<-dd$Freq/sum(dd$Freq)*100cumsump<-cumsum(percent)df<-data.frame(dd,percent,cumsump)library(reshape)mytable<-rename(df,c(Var1="分组",Freq="频数",percent="频数百分比",cumsump="累积频数百分比"))mytable2.2类别数据的可视化
2.1.1条形图及其变种据
2.1.2饼图及其变种第2章数据的可视化2.2.1条形图及其变种2.2类别数据的可视化2018-9-25简单条形图
(例题2—1简单条形图)load("C:/example/ch2/example2_1.RData")count1<-table(example2_1$社区)count2<-table(example2_1$性别)count3<-table(example2_1$态度)par(mfrow=c(1,3),mai=c(0.7,0.7,0.6,0.1),cex=0.7,cex.main=0.8)bar<-barplot(count1,xlab="频数",ylab="社区",horiz=TRUE,xlim=c(0,1.2*max(count1)),main="(a)水平条形图",col=2:5)text(bar,count1,labels=count1,pos=4,adj=c(0,0.5))bar<-barplot(count2,xlab="性别",ylab="频数",col=c("gray40","gray80"),ylim=c(0,1.2*max(count2)),main="(b)垂直条形图")text(bar,count2,labels=count2,pos=3,col=2)bar<-barplot(count3,xlab="态度",ylab="频数",ylim=c(0,1.1*max(count3)),col=2:3,main="(c)垂直条形图")text(bar,count3/2,labels=count3,pos=3,col=4)2018-9-25Pareto图(排序的条形图)
(绘制例2-1的Paretochart)#load("C:/example/ch2/example2_1.RData")count1<-table(example2_1$社区)par(mai=c(0.7,0.7,0.1,0.7),cex=.8)x<-sort(count1,decreasing=T)bar<-barplot(x,xlab="社区",ylab="频数",col=rainbow(4),ylim=c(0,1.2*max(count1)))text(bar,x,labels=x,pos=3,col=1)y<-cumsum(x)/sum(x)par(new=T)plot(y,type="b",lwd=1.5,pch=15,axes=FALSE,xlab='',ylab='',main='')axis(4)mtext("累积频率",side=4,line=3,cex=.8)mtext("累积分布曲线",line=-2.5,cex=.8,adj=0.75)2018-9-25复式条形图
(例题2—1复式条形图)load("C:/example/ch2/example2_1.RData")mytable1<-table(example2_1$态度,example2_1$社区)par(mfrow=c(2,2),cex=0.6)bar1<-barplot(mytable1,xlab="社区",ylab="频数",ylim=c(0,16),col=c("red","green"),legend=rownames(mytable1),args.legend=list(x=12),beside=TRUE,main="(a)社区并列条形图")text(bar1,mytable1,labels=mytable1,pos=3,col=1)
bar2<-barplot(mytable1,xlab="社区",ylab="频数",ylim=c(0,30),col=c("red","green"),legend=rownames(mytable1),args.legend=list(x=4.8),main="(b)社区堆叠条形图")
mytable2<-table(example2_1$态度,example2_1$性别)bar3<-barplot(mytable2,xlab="性别",ylab="频数",ylim=c(0,30),col=c("red","green"),legend=rownames(mytable2),args.legend=list(x=4.5),beside=TRUE,main="(c)性别并列条形图")text(bar3,mytable2,labels=mytable2,pos=3,col=1)
bar4<-barplot(mytable2,xlab="性别",ylab="频数",ylim=c(0,60),col=c("red","green"),legend=rownames(mytable2),args.legend=list(x=1),main="(d)性别堆叠条形图")2018-9-25脊形图
(spineplot)是根据各类别的比例绘制的一种条形图,形状类似脊椎骨,可看做是堆叠条形图的一个变种绘制脊形图时,将一个类别变量各类别的条的高度都设定为1,条的宽度与观测频数成比例,条内每一段的高度表示另一个类别变量各类别的比例2018-9-25脊形图
(例题2—1脊形图)#性别与社区的脊形图#社区与态度的脊形图load("C:/example/ch2/example2_1.RData")library(vcd)spine(社区~性别,data=example2_1,xlab="性别",ylab="社区",margins=c(4,3.5,1,2.5))spine(态度~社区,data=example2_1,xlab="社区",ylab="态度",margins=c(4,3.5,1,2.5))2018-9-25附加:社区与态度的百分比条形图load("C:/example/ch2/example2_1.RData")par(mai=c(.8,.8,.3,.1),cex=.8)mytable2<-table(example2_1$社区,example2_1$态度)A<-mytable2[1,]/sum(mytable2[1,])B<-mytable2[2,]/sum(mytable2[2,])C<-mytable2[3,]/sum(mytable2[3,])D<-mytable2[4,]/sum(mytable2[4,])df<-as.matrix(data.frame(A,B,C,D))barplot(df,xlab="社区",ylab="百分比",ylim=c(0,1.5*max(df)),col=2:3,legend=rownames(df),args.legend=list(x=1),main="社区与态度的百分比条形图")2018-9-25马赛克图
(例题2—1)马赛克图(mosaicplot)图中的嵌套矩形面积正比于单元格频数。矩形的相对高度和宽度表示不同类别的频数性对与总频数的比例(更适合展示两个以上的类别变量)#绘马赛克图(mosaicplot)
load("C:/example/ch2/example2_1.RData")par(mai=c(0.4,0.4,0.2,0.1),cex=.9)mosaicplot(~性别+社区+态度,data=example2_1,color=2:3,main="")2.2.2饼图及其变种2.2类别数据的可视化2018-9-25饼图
(例题2—1)#绘制带有百分比的饼图(以不同社区的被调查者人数分布为例)#绘制3D饼图(以不同社区的被调查者人数分布为例)load("C:/example/ch2/example2_1.RData")count1<-table(example2_1$社区)name<-names(count1)percent<-prop.table(count1)*100label1<-paste(name,"",percent,"%",sep="")par(pin=c(3,3),mai=c(0.1,0.4,0.1,0.4),cex=0.8)pie(count1,labels=label1,init.angle=90,radius=1)load("C:/example/ch2/example2_1.RData")library(plotrix)count1<-table(example2_1$社区)name<-names(count1)percent<-prop.table(count1)*100labs<-paste(name,"",percent,"%",sep="")pie3D(count1,labels=labs,explode=0.1,labelcex=0.7)2018-9-25扇形图
(例题2—1)#绘制扇形图(以不同社区的被调查者人数分布为例)load("C:/example/ch2/example2_1.RData")count1<-table(example2_1$社区)name<-names(count1)percent<-count1/sum(count1)*100labs<-paste(name,"",percent,"%",sep="")library(plotrix)fan.plot(count1,labels=labs,ticks=200)2.3数值数据的可视化
2.3.1展示数值分布的图形
2.3.2展示变量间关系的图形
2.3.3比较多样本相似性的图形
2.3.4时间序列图第2章数据的可视化2018-9-25数值数据的可视化数值数据做了类别化处理后,上面介绍的可视化方法都适用数值数据还有一些特定的图示方法,它们并不适用于类别数据数值数据的可视化图形大致可分为展示数据分布的图形、展示变量间关系的图形、展示多样本在多变量上数值相似性的图形以及展示时间序列的图形等2.3.1展示数据分布的图形2.3数值数据的可视化2018-9-25直方图
(histogram)用于展示分组数据分布的一种图形用矩形的宽度和高度来表示频数分布本质上是用矩形的面积来表示频数分布在直角坐标中,用横轴表示数据分组,纵轴表示频数或频率,各组与相应的频数就形成了一个矩形,即直方图直方图下的总面积等于12018-9-25绘制直方图
(例2-2四种不同的直方图)load("C:/example/ch2/example2_2.RData")
d<-example2_2$销售额par(mfrow=c(2,2),cex=0.7,mai=c(0.6,0.6,0.2,0.1))hist(d,ylim=c(0,28),labels=T,xlab="销售额",ylab="频数",main="(a)普通")hist(d,breaks=20,col="lightblue",xlab="销售额",ylab="频数",main="(b)分成20组")hist(d,freq=FALSE,ylim=c(0,0.028),breaks=20,xlab="销售额",ylab="密度",col="lightgreen",labels=T,main="(c)增加轴须线和核密度线")rug(d)lines(density(d),col="red",lwd=2)hist(d,freq=FALSE,breaks=20,xlab="销售额",ylab="密度",main="(d)增加正态密度线",col="pink")curve(dnorm(x,mean(d),sd(d)),add=T,col="blue",lwd=2)rug(jitter(d))2018-9-25绘制核密度图
(例2—2的两个密度图)#绘制密度图核密度估计是用于估计随机变量概率密度函数的一种非参数方法。核密度图是估计的概率密度函数的图像。用于观察连续型变量的分布load("C:/example/ch2/example2_2.RData")par(mfrow=c(1,2),cex=0.7,mai=c(.7,.7,.1,.1))d<-density(example2_2$销售额)plot(d,main="",lwd=3,col=2)plot(d,main="",lwd=3)polygon(d,col="gold",border="blue")rug(example2_2$销售额,col="brown")2018-9-25给直方图增加正态曲线的不恰当之处#美国黄石国家公园老忠实间歇喷泉的喷发持续时间和等待(间隔)时间,来自R的自带数据包par(mai=c(.8,.8,.1,.1),cex=.8)hist(faithful$eruptions,probability=TRUE,xlab="喷发持续时间",breaks=20,col="lightblue",main="")rug(faithful$eruptions)lines(density(faithful$eruptions,bw=.1),type='l',lwd=2,col='red')curve(dnorm(x,mean=mean(faithful$eruptions),sd=sd(faithful$eruptions)),add=T,col="blue",lwd=2,lty=6)2018-9-25给直方图增加正态曲线的不恰当之处par(mai=c(.8,.8,.1,.1),cex=.8)hist(faithful$eruptions,probability=TRUE,xlab="喷发持续时间",breaks=20,col="lightblue",labels=T,main="")rug(faithful$eruptions)lines(density(faithful$eruptions,bw=.1),type='l',lwd=4,col='red')points(quantile(faithful$eruptions),c(0,0,0,0,0),lwd=5,col="red2")points(mean(faithful$eruptions),c(0),lwd=8,col=4)curve(dnorm(x,mean=mean(faithful$eruptions),sd=sd(faithful$eruptions)),add=T,col="blue",lwd=3,lty=6)2018-9-25直方图与条形图的区别
(直方图)条形图中的每一矩形表示一个类别,其宽度没有意义;直方图的宽度则表示各组的组距分组数据具有连续性,直方图的各矩形通常是连续排列;而条形图则是分开排列条形图主要用于展示类别数据,而直方图则主要用于展示数值数据2018-9-25茎叶图
(stem-and-leafplot)显示未分组的原始数据的分布由“茎”和“叶”两部分构成以该组数据的高位数值作树茎,低位数字作树叶树叶上只保留最后一位数字茎叶图类似于横置的直方图,但又有区别直方图可观察一组数据的分布状况,但没有给出具体的数值茎叶图既能给出数据的分布状况,又能给出每一个原始数值,保留了原始数据的信息直方图适用于大批量数据,茎叶图适用于小批量数据2018-9-25绘制茎叶图
(例题2—4)#绘制茎叶图(每个茎列出1次的茎叶图)#使用stem.leaf函数绘制茎叶图(每个茎列出2次的茎叶图)#使用stem.leaf.backback函数绘制背靠背茎叶图(前60天销售额和后60天销售额分别绘制)load("C:/example/ch2/example2_2.RData")stem(example2_2$销售额)library(aplpack)stem.leaf(example2_2$销售额,1,2)
library(aplpack)stem.leaf.backback(example2_2$销售额[1:60],example2_2$销售额[61:120])2018-9-25茎叶图中数据的深度
(例题2—4)图中最左边一列给出的是数据的深度(depth)把数据按大小排序,一个数据的深度是指该数据升序和降序中的最小值比如,194这个数,从小的一端数过来是第18个,而从大的一端数过来是第102个,因此该数的是18茎叶图中每一行列出的深度是为该行的最大深度。比如,茎为19*的那行最大深度出现在数据194,深度为18,因此该行的深度就是18在深度那一列中,中位数所在是行用括号括起来,其中的数字5不是指数据深度,而是数据的个数。根据数据的深度值,可以计算出数据的个数2018-9-25箱线图
(boxplot)
2018-9-25箱线图
(boxplot)
2018-9-25箱线图的示意图
(boxplot)2018-9-25箱线图的解读
(boxplot)对称分布的箱线图的特点是:中位数在箱子中间;上下相邻值到箱子的距离等长;离群点在上下内围栏的分布也大体相同右偏分布的箱线图的特点是:中位数更靠近25%四分位数(下四分位数)的位置;下相邻值到箱子的距离比上相邻值到箱子的距离短;离群点多数在上内围栏之外左偏分布的箱线图的特点是:中位数更靠近75%四分位数(上四分位数)的位置;下相邻值到箱子的距离比上相邻值到箱子的距离长;离群点多数在下内围栏之外2018-9-25不同设置的箱线图#相邻值与箱子连线的箱线图(range=1.5和range=3)par(mfrow=c(3,1),mai=c(0.4,0.2,0.3,0.2))x<-rnorm(1000,50,5)boxplot(x,range=1.5,col="red",lwd=2,horizontal=TRUE,main="相邻值与箱子连线的箱线图(range=1.5)",cex=0.8)boxplot(x,range=3,col="green",lwd=2,horizontal=TRUE,main="相邻值与箱子连线的箱线图(range=3)",cex=0.8)#极值与箱子连线的箱线图(range=0,varwidth=T)boxplot(x,range=0,varwidth=T,lwd=2,col="pink",horizontal=TRUE,main="极值与箱子连线的箱线图(range=0,varwidth=T)",cex=0.8)2018-9-25分布的形状与箱线图2018-9-25【例2-2】数据的直方图和箱线图
虚线为分位数(0,.25,.5,.75,1)#【例2-2】数据的直方图load("C:/example/ch2/example2_2.RData")x<-example2_2$销售额layout(matrix(c(1,2),nc=1),heights=c(2,1))par(mai=c(0.15,.4,.2,.2),cex=.8)hist(x,freq=FALSE,col="lightgreen",breaks=15,xlab="",ylab="",main="")rug(x,col="blue4")abline(v=quantile(x),col="blue4",lwd=2,lty=6)points(quantile(x),c(0,0,0,0,0),lwd=5,col="red2")lines(density(x),col="red",lwd=2)#模拟箱线图—调整轴须线的长度par(mai=c(0.35,.42,.2,.43),cex=.8)boxplot(x,col="pink",lwd=2,horizontal=T)rug(x,ticksize=.1,col="blue4")abline(v=quantile(x),col="blue4",lwd=2,lty=6)2018-9-25箱线图
(例题2—3)【例2-3】在2008年8月举行的第29届北京奥运会男子25米手枪速射决赛中,进入决赛的前6名运动员最后20枪的决赛成绩如表2—8所示。绘制箱线图分析各运动员射击成绩分布的特征亚历山大·彼得里夫利拉尔夫·许曼克里斯蒂安·赖茨列昂尼德·叶基莫夫基思·桑德森罗曼·邦达鲁克10.18.49.98.89.79.88.49.610.710.710.59.210.310.29.09.79.010.310.210.810.59.69.67.210.410.510.310.09.09.99.610.310.610.29.910.510.19.810.010.19.210.410.010.97.910.29.710.99.910.310.79.49.910.510.210.010.410.38.110.310.89.59.510.49.310.210.010.29.99.810.110.010.310.710.18.910.59.810.510.19.910.010.29.29.610.310.310.010.08.39.89.79.09.19.99.010.49.39.89.59.59.410.310.310.89.89.79.89.110.010.310.79.910.410.29.610.710.09.99.62018-9-25绘制普通箱线图#绘制普通箱线图(example2_3)
#绘制凹槽箱线图#绘制凹槽箱线图load("C:/example/ch2/example2_3.RData")par(mai=c(.8,.8,.1,.1))boxplot(example2_3,col="pink",ylab="射击环数",xlab="运动员",cex.lab=.8,cex.axis=.7)boxplot(example2_3,col="red",notch=TRUE,ylab="射击环数",xlab="运动员",cex.lab=.8,cex.axis=.6)boxplot(example2_3,col=3:8,cex.axis="")boxplot(example2_3,col="red",notch=TRUE,ylab="射击环数",xlab="运动员",cex.lab=.8,cex.axis=.6,add=TRUE)2018-9-25绘制小提琴图
(【例2—2】violinplot)load("C:/example/ch2/example2_3.RData")library(vioplot)par(cex=0.8,mai=c(.7,.7,.1,.1))x1<-example2_3$亚历山大.彼得里夫利x2<-example2_3$拉尔夫.许曼x3<-example2_3$克里斯蒂安.赖茨x4<-example2_3$列昂尼德.叶基莫夫x5<-example2_3$基思.桑德森x6<-example2_3$罗曼.邦达鲁克
vioplot(x1,x2,x3,x4,x5,x6,col="lightblue",names=c("亚历山大.彼得里夫利","拉尔夫.许曼","克里斯蒂安.赖茨","列昂尼德.叶基莫夫","基思.桑德森","罗曼.邦达鲁克"))2018-9-25点图
(dotplot)点图也称克利夫兰(Cleveland)点图,它是将各数据用点绘制在图中点图是检测数据离群点的有效工具,当数据量较少时,也可以替代箱线图来观察实际的分布2018-9-25将数据转化成长格式#转化成长格式,并另存为example2_3_1
load("C:/example/ch2/example2_3.RData")example2_3<-cbind(example2_3,id=factor(1:20))library(reshape)example2_3_1<-melt(example2_3,id.vars=c("id"),variable_name="运动员")example2_3_1<-rename(example2_3_1,c(value="射击环数"))save(example2_3_1,file="C:/example/ch2/example2_3_1.RData")head(example2_3_1);tail(example2_3_1)2018-9-25点图
(Clevelanddotplots)#用dotchart函数绘制点图(例题2—3)
load("C:/example/ch2/example2_3_1.RData")par(mai=c(.8,.8,.1,.1),cex=.8)dotchart(example2_3_1$射击环数,groups=example2_3_1$运动员,xlab="射击环数",pch=20)2018-9-25Lattice包绘制的点图
(Clevelanddotplots)load("C:/example/ch2/example2_3_1.RData")library(lattice)dot1<-dotplot(射击环数~运动员,data=example2_3_1,col="blue",pch=19,cex=.6,main="并列")dot2<-dotplot(~射击环数|运动员,par.strip.text=list(cex=0.8),data=example2_3_1,col="blue",pch=19,cex=.6,main="栅格")#组合latiice包的绘图plot(dot1,split=c(1,1,2,1))plot(dot2,split=c(2,1,2,1),newpage=F)2018-9-25核密度图
(例题2—3)
#用lattice包绘制核密度曲线load("C:/example/ch2/example2_3_1.RData")library(lattice)dp1<-densityplot(~射击环数|运动员,data=example2_3_1,col="blue",cex=0.4,par.strip.text=list(cex=0.6),sub="(a)栅格图")#用lattice包绘制例2-3的核密度比较曲线dp2<-densityplot(~射击环数,group=运动员,data=example2_3_1,auto.key=list(columns=1,x=0.01,y=0.95,cex=0.6),cex=0.4,sub="(b)比较图")#组合latiice包的绘图plot(dp1,split=c(1,1,2,1))plot(dp2,split=c(2,1,2,1),newpage=F)2018-9-25核密度图(kerneldensityplot)
(例题2—3)
#绘制核密度比较曲线
load("C:/example/ch2/example2_3_1.RData")attach(example2_3_1)library(sm)par(cex=0.8,mai=c(.7,.7,.1,.1))pare(射击环数,运动员,lty=1:6,col=c("black","blue","brown","darkgreen","green","red"),lwd=2)legend("topleft",legend=levels(运动员),lty=1:6,,col=c("black","blue","brown","darkgreen","green","red"))2.3.2展示变量间关系的图形2.3数值数据的可视化2018-9-25展示变量间关系的图形
(散点图—scatterplots)展示两个变量之间的关系用横轴代表变量x,纵轴代表变量y,每组数据(xi
,yi)在坐标系中用一个点表示,n组数据在坐标系中形成的n个点称为散点,由坐标及其散点形成的图有2维、3维、矩阵等形式2018-9-25#模拟线性关系的散点图
用散点图的外部点围成区域par(mai=c(0.8,0.8,0.2,0.2))x<-seq(0,25,len=100)y<-4+0.5*x+rnorm(100,0,2)d<-data.frame(x,y)plot(d)polygon(d[chull(d),],col="pink",lty=3,lwd=2)points(d)abline(lm(y~x),lwd=3)abline(v=mean(x),h=mean(y),lty=2)lines(lowess(y~x,f=0.2),col=4,lwd=2,lty=6)2018-9-25绘制散点图
(例题2—4)【例2-4】
随机抽取的20家医药企业销售收入、销售网点数、销售人员数数以及广告费用的数据。绘散点图观察这些变量之间的关系销售收入销售网点数销售人员数广告费用43731865526512811522642473232376519098740527632119239492145104398313341182455355026253765561256655817410202626464931271905262028584107249329153950383401551086443531781642753842371913884113152858144456471330814147857150212306187472018-9-25绘制散点图#绘制普通散点图和带有拟合直线的散点图load("C:/example/ch2/example2_4.RData")attach(example2_4)par(mfcol=c(1,2),mai=c(0.7,0.7,0.3,0.1),cex=0.8,cex.main=0.8)plot(广告费用,销售收入,main="(a)普通带网格线",type="n")grid()points(广告费用,销售收入,main="(a)普通带网格线")rug(jitter(广告费用),side=1,col=4)rug(jitter(销售收入),side=2,col=4)
plot(广告费用,销售收入,main="(b)带有拟合直线")abline(lm(销售收入~广告费用,data=example2_4),col="red")rug(jitter(广告费用),side=1,col=4)rug(jitter(销售收入),side=2,col=4)2018-9-25绘制散点图#绘制带有两个变量箱线图的散点图load("C:/example/ch2/example2_4.RData")attach(example2_4)par(mfcol=c(1,2),mai=c(0.7,0.7,0.3,0.1),cex=0.8,cex.main=0.8)plot(广告费用,销售收入,main="(a)普通带网格线",type="n")grid()points(广告费用,销售收入,main="(a)普通带网格线")rug(jitter(广告费用),side=1,col=4)rug(jitter(销售收入),side=2,col=4)
plot(广告费用,销售收入,main="(b)带有拟合直线")abline(lm(销售收入~广告费用,data=example2_4),col="red")rug(jitter(广告费用),side=1,col=4)rug(jitter(销售收入),side=2,col=4)2018-9-25绘制散点图
(重叠散点图)par(mai=c(0.5,0.85,0.1,0.1))plot(广告费用,销售收入,xlab="",ylab="销售收入")abline(lm(销售收入~广告费用,data=example2_4))points(销售网点数,销售收入,pch=2,col="blue")abline(lm(销售收入~销售网点数,data=example2_4),col="blue")points(销售人员数,销售收入,pch=3,col="red")abline(lm(销售收入~销售人员数,data=example2_4),col="red")legend("bottomright",legend=c("广告费用","销售网点数","销售人员数"),pch=1:3,col=c("black","blue","red"))2018-9-25绘制三维散点图#绘制三维散点图#绘制三维散点图load("C:/example/ch2/example2_4.RData")library(lattice)cloud(销售收入~销售网点数*广告费用,data=example2_4,col="blue")library(scatterplot3d)attach(example2_4)s3d<-scatterplot3d(销售人员数,销售网点数,销售收入,pch=16,highlight.3d=TRUE,type="h",cex.lab=0.7)fit<-lm(销售收入~销售人员数+销售网点数)s3d$plane3d(fit,col="blue")2018-9-25绘制散点图#绘制散点图矩阵#绘制散点图矩阵#
diagonal=c("density","boxplot","histogram","oned","qqplot","none")load("C:/example/ch2/example2_4.RData")plot(example2_4,cex=0.8,gap=0.5)library(car)attach(example2_4)scatterplotMatrix(~销售收入+销售网点数+销售人员数+广告费用,diagonal="histogram",gap=0.5)2018-9-25模拟气泡图
(bubbleplot)par(mai=c(.8,.8,.3,.3))n<-30x<-rnorm(n)y<-rnorm(n)z<-abs(rnorm(n))+5:1plot(x,y,cex=z,col="pink",pch=19,main="bubbleplot")points(x,y,cex=z,lwd=1.5)2018-9-25绘制气泡图
(例2—4)load("C:/example/ch2/example2_4.RData")attach(example2_4)par(mai=c(0.9,0.9,0.1,0.1))r<-sqrt(销售收入/pi)symbols(广告费用,销售网点数,circle=r,inches=0.3,fg="white",bg="lightblue",ylab="销售网点数",xlab="广告费用")text(广告费用,销售网点数,rownames(example2_4),cex=0.6)mtext("气泡大小=销售收入",line=-2.5,cex=.8,adj=0.1)2.3.3比较多样本相似性的图形2.3数值数据的可视化2018-9-25比较多个样本相似性的图形
(例题2—5)【例2-5】2010年按收入等级分的我国城镇居民家庭平均每人全年消费性支出数据。绘制轮廓图,比较不同收入等级的家庭消费支出的特点和相似性支出项目最低收入户(10%)低收入户(10%)中等偏下户(20%)中等收入户(20%)中等偏上户(20%)高收入户(10%)最高收入户(10%)食品2525.323246.6939464773.835710.1467568535.21衣着513.56804.731076.031408.11786.572226.73148.85居住656.28775.11009.971260.281504.211999.993014.65家庭设备用品及服务288.55427.16600.94833.591110.951500.242380.63医疗保健405.29478.3637.75864.671060.131313.61842.83交通和通信448.25669.081051.751620.622357.963630.636770.31教育文化娱乐服务502.61746.671037.971421.252001.472739.74515.23其他商品和服务131.98212.45288.8427.09608.93833.531553.922018-9-25也称平行坐标图(parallel
plot)20世纪90年代初由Inselberg和Dimsdale提出的展示多元数据的图示方法将各变量用一系列平行的横坐标轴表示,变量值对应纵轴上的位置可用于研究多个样本在多个变量上的相似程度或变量间的相互关系比较多个样本相似性的图形—轮廓图
(outlineplot)2018-9-25绘制轮廓图#方法1:使用matplot函数load("C:/example/ch2/example2_5.RData")par(mai=c(.7,.7,.1,.1),cex=.8)matplot(t(example2_5[2:9]),type='b',lty=1:7,col=rainbow(7),lwd=2,xlab="消费项目",ylab="支出金额",pch=1,xaxt="n")axis(side=1,at=1:8,labels=c("食品","衣着","居住","家庭设备用品及服务","医疗保健","交通和通信","教育文化娱乐服务","其他商品和服务"),cex.axis=0.7)legend(x="topright",legend=example2_5[,1],lty=1:7,col=rainbow(7),text.width=1,cex=0.8)2018-9-25比较多个样本的相似性—雷达图
(radarchart)也称为蜘蛛图(spiderchart)从一个点出发,用每一条射线代表一个变量,多个变量的数据点连接成线,即围成一个区域,多个样本围成多个区域,就是雷达图可用于研究多个样本在多个变量上的相似程度当多个变量的取值相差较大或量纲不同时,可进行变换处理后再做图2018-9-25绘制雷达图的R函数#绘制雷达图的函数radarchart(df,axistype,seg,maxmin,vlabels,...)
df:为绘图的数据,通常为数据框。数据框的行表示各样本,列为绘图变量
axistyp:指定坐标轴类型,取值在0~5之间,默认为0,表示不标出坐标轴刻度
seg:设定坐标轴刻度线数,默认为4条
maxmin=TRUE:设定各坐标轴的最小值为所有变量的最小值,最大值为所有变量的最大值,maxmin=FALSE表示各坐标轴的最小值为该轴所对应变量的最小值,最大值为该轴所对应变量的最大值
vlabels:用于设定各坐标轴的标题更多参数设置查看帮助:?radarchart2018-9-25绘制雷达图load("C:/example/ch2/example2_5.RData")par(mai=c(0.3,0.5,0.1,0.1),cex=0.8)library(fmsb)radarchart(example2_5[,2:9],axistype=0,seg=4,maxmin=FALSE,vlabels=names(example2_5[,2:9]),pcol=rainbow(7),plwd=3)legend(x="topleft",legend=example2_5[,1],col=rainbow(7),lwd=1,text.width=0.5,cex=0.7)2018-9-25也称雷达图用P个变量将圆P等分,并将P个半径与圆心连线将一个样本的P个变量连接成一个P边形n个样本形成n个P边形根据n个P边形比较n个样本的相似性比较多个样本相似性的图形—星图
(starplot)2018-9-25绘制星图
(例2-5)#绘制不同收入等级的星图
#绘制不同消费项目的星图#画成圆形load("C:/example/ch2/example2_5.RData")matrix2_5=as.matrix(example2_5[,2:9])rownames(matrix2_5)=example2_5[,1]stars(matrix2_5,key.loc=c(7,2,5),cex=0.8)stars(t(matrix2_5),full=F,draw.segments=TRUE,key.loc=c(8,1.85,5),cex=0.8)stars(t(matrix2_5),draw.segments=TRUE,key.loc=c(7,2,5),cex=0.6)2018-9-25比较多个样本相似性的图形—脸谱图
(faceplot)
脸谱图由美国统计学家Chernoff(1973)首先提出,也称为Chernoff脸谱(Chernofffaces)脸谱图将P个维度的数据(P个变量)用人脸部位的形状或大小来表征。通过对脸谱的分析,可以根据P个变量对样本进行归类或比较研究脸谱图由15个变量决定脸部特征,若实际变量更多将被忽略,若实际变量较少则脸部有些特征将被自动固定根据一定的数学函数关系,就可以确定脸的轮廓、五官的部位及形状,每一个样本点都用一张脸谱来表示统计学曾给出了几种不同的脸谱图的画法,对于同一种脸谱图的画法,将变量次序重新排列,得到的脸谱的形状也会有很大不同2018-9-25比较多个样本相似性的图形—脸谱图
(faces)
#15个变量代表的面部特征变量面部特征变量面部特征变量面部特征1脸的高度(heightofface)6笑容曲线(curveofsmile)11发型(stylingofhair)2脸的宽度(widthofface)7眼睛高度(heightofeyes)12鼻子高度(heightofnose)3脸的形状(shapeofface)8眼睛宽度(widthofeyes)13鼻子宽度(widthofnose)4嘴的高度(heightofmouth)9头发高度(heightofhair)14耳朵宽度(widthofears)5嘴的宽度(widthofmouth)10头发宽度(widthofhair)15耳朵高度(heightofears)2018-9-25绘制【例2-5】脸谱图
(由包
aplpack绘制,face.type=0,1,2)
#不同收入等级的脸谱图load("C:/example/ch2/matrix2_5.RData")library(aplpack)faces(matrix2_5,nrow.plot=4,ncol.plot=2,face.type=0,main='不同收入等级的脸谱图')faces(matrix2_5,nrow.plot=4,ncol.plot=2,face.type=1,main='不同收入等级的脸谱图')
faces(matrix2_5,nrow.plot=4,ncol.plot=2,face.type=2,main='不同收入等级的脸谱图')2018-9-25绘制【例2-5】脸谱图
(由包
aplpack绘制,face.type=0,1,2)
#不同消费项目的脸谱图faces(t(matrix2_5),nrow.plot=4,ncol.plot=2,face.type=0,main='不同消费项目的脸谱图')faces(t(matrix2_5),nrow.plot=4,ncol.plot=2,face.type=1,main='不同消费项目的脸谱图')faces(t(matrix2_5),nrow.plot=4,ncol.plot=2,face.type=2,main='不同消费项目的脸谱图')2.3.4时间序列图2.3数值数据的可视化2018-9-25如时间序列数据可以绘制线图来观察数据随时间变化的趋势或特征。线图的横轴为时间,纵轴为观测值。【例2—9】(数据:example2_9.Rdata)
2000—2014年我国农村居民和城镇居民消费水平的数据。绘制线图,比较农村居民和城镇居民消费水平的变化趋势。时间序列图
(lineplot)年份农村居民消费水平城镇居民消费水平2000191769992001203273242002215777452003229281042004252188802005278498322006306610739200735381248020084065140612009440215127201049411710420116187199122012696421861201377732360920148711254242018-9-25绘制【例2-9】的线图
load("C:/example/ch2/example2_9.RData")example2_9<-ts(example2_9,start=2000)par(mai=c(0.7,0.7,0.1,0.1),cex=0.8,fg=2)plot(example2_9[,2],lwd=2,ylim=c(2000,30000),xlab="年份",ylab="居民消费水平",type="n")grid(col="gray60")p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车间统计考试题及答案
- 2025合同协议合作共赢合同合伙人协议书
- 初级社会工作者考试考点试题及答案
- 日语模拟高考试题及答案
- 2025年设计师考试核心试题总结
- 辽宁爆破员证考试题目及答案
- MS Office中图形设计功能的使用及2025年考试试题及答案
- 中级社会工作者考试中伦理原则的试题及答案
- 2025建筑工程施工合同专用条款填写范例
- 初级社会工作者对社会服务设计的思考试题及答案
- 2025年河北省中考二模道德与法治试题(启光卷含答案)
- 2025年保险从业人员考试试题及答案
- 湖北省武汉二中2025届高三下学期历史模拟卷7(含答案)
- 爆炸赔偿协议书
- 致2025届高考生高二到高三如何顺利转型
- 2025年高考数学二轮热点题型归纳与演练(上海专用)专题06数列(九大题型)(原卷版+解析)
- 2025贵州中考:历史必考知识点
- 国家开放大学2025年《创业基础》形考任务4答案
- 四川成都历年中考作文题与审题指导(2005-2024)
- 2024年全国高考数学试题及解析答案(新课标Ⅱ卷)
- 国开电大-工程数学(本)-工程数学第4次作业-形考答案
评论
0/150
提交评论