版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
图形三要素01102低级绘图函数03高级绘图函数01PAGE2base包绘图技术R语言base包的绘图函数可以分为高级绘图函数与低级绘图函数两大类。高级绘图函数的主要特性如下:创建新图形的命令,运行代码会在新窗口中创建一个图形。如果add=TRUE(默认为FALSE),则在当前活动窗口中将新建图形叠加至原有图形中。在基础包中,常用的高级函数有:plot(散点图/曲线图)、barplot(柱形图/条形图)、hist(直方图)、pie(饼图)等。低级绘图函数的主要特性如下:运行代码后会在现有活动窗口中添加点(points)、线(lines/abline/segments/arrows)、文字(text)等图形绘图元素。添加图例(legend)、坐标轴标题(title)的正标题或副标题等提示说明绘图元素。因为低级函数必须存在于高级绘图函数中,所以在使用低级绘图函数前,要先使用高级绘图函数创建一个图形。2图形三要素301PAGE4颜色元素R语言可以通过设置绘图参数col,改变图像、坐标轴、文字、点、线等的颜色。除了利用参数col控制绘图颜色外,也可以通过其他参数来设置图形的前景色、背景色、标题颜色、坐标轴颜色等。4参数描述col默认的绘图颜色fg图形的前景色bg图形的背景色col.axis坐标轴刻度文字的颜色col.lab坐标轴标签的颜色col.main主标题的颜色col.sub副标题的颜色>plot(women,main="身高VS体重散点图",sub="数据来源:women数据集",+col="red",col.main="green",col.sub="blue",+col.axis="grey",col.lab="yellow")PAGE5主题颜色方案除了固定颜色选择外,R语言本身也提供特定颜色主题的配色方案。这些配色方案用一系列渐变的颜色表现特定的主题。如rainbow()、heat.colors()、terrain,colors()、topo.colors()、cm.colors()、gray()等函数。5主题函数描述rainbow()彩虹的颜色,是由“赤、橙、黄、绿、青、蓝、紫”一系列颜色组成heat.colors()从红色渐变到黄色,再变到白色terrain.colors()从绿色渐变到黄色,再到棕色,最后到白色topo.colors()从蓝色渐变到青色,再到黄色,最后到棕色cm.colors()从青色渐变到白色,再到粉红色gray()从黑到白的渐变过程,参数值范围在[0,1]>#主题颜色>par(mfrow=c(3,2))>barplot(rep(1,7),col=rainbow(7),main="barplot(rep(1,7),col=rainbow(7))",axes=F)>barplot(rep(1,7),col=heat.colors(7),main="barplot(rep(1,7),col=heat.colors(7))",axes=F)>barplot(rep(1,7),col=terrain.colors(7),main="barplot(rep(1,7),col=terrain.colors(7))",axes=F)>barplot(rep(1,7),col=topo.colors(7),main="barplot(rep(1,7),col=topo.colors(7))",axes=F)>barplot(rep(1,7),col=cm.colors(7),main="barplot(rep(1,7),col=cm.colors(7))",axes=F)>barplot(rep(1,7),col=gray(0:6/6),main="barplot(rep(1,7),col=gray(0:6/6))",axes=F)>par(mfrow=c(1,1))PAGE6RColorBrewer扩展包RColorBrewer扩展包提供了3套很好的配色方案。用户只需要指定配色方案的名称,就可以使用brewer.pal()函数生成颜色。这3套配色方案包括:连续型Sequential:生成一系列连续渐变的颜色,通常用来标记连续型数值的大小。极端型Diverging:生成用深色强调两端、浅色标示中部的系列颜色、可用来标记数据中的离群点。离散型Qualitative:生成一系列彼此差异比较明显的颜色,通常用来标记离散型数据。运行display.brewer.all()函数可显示不同调色板,当参数type为seq时显示连续型、div时显示极端型、qual时显示离散型、all时同时显示这3套配色方案。6>if(!require(RColorBrewer))install.packages("RColorBrewer")>par(mfrow=c(3,1))>display.brewer.all(type="seq")>title('seq连续型:共18组颜色,每组分为9个渐变颜色展示')>display.brewer.all(type="div")>title("div极端型:共9组颜色,每组为11个渐变颜色展示")>display.brewer.all(type="qual")>title("qual离散型:共8组颜色,每组渐变颜色数不尽相同")>par(mfrow=c(1,1))PAGE7文字元素文字元素可以设置的参数一般包括:字体(font)、颜色(col)、大小(cex)。颜色在上一小节已经介绍过,这里重点讲解如何设置文字的字体和大小。可以通过参数font来设置字体。font取值是一个整数,分别用1、2、3、4来表示正常体、粗体、斜体和粗斜体。可以通过参数cex来设置文字的大小。cex取值是一个实数,默认为1,表示不缩放。取值小于1时,表示缩小,取值大于1时,表示放大。7#字体和大小plot(0:4,type="n",axes=F,xlab=NA,ylab=NA)type<-c("正常字体(默认)","粗体字体","斜体字体","粗斜体字体")for(iin1:4){text(2,5-i,font=i,cex=i/2,labels=paste0("font=",i,":",type[i],";cex=",i/2,"放大",i/2,"倍"))}PAGE8点线元素-点点元素可以设置的参数一般包括:点样式(pch)、颜色(col)、大小(cex)等。颜色和大小前文已经介绍,接下来一起来学习点样式pch。参数pch(点样式)可取0~25的数字,当取值为21~25时,还可以指定边界颜色(col)和填充色(bg)。此外,参数pch也可以是双引号里的单个字符。例如pch取值可以为“*,?,a,A,0,.,+,-,|”。8>#点元素>plot(1,col="white",xlim=c(1,7),ylim=c(1,5),+main="点样式cex=2,pch=",xlab=NA,ylab=NA,axes=FALSE)>for(iinc(0:25)){+x<-(i%/%5)*1+1+y<-6-(i%%5)-1+if(length(which(c(21:25)==i)>=1)){+points(x,y,pch=i,col="blue",bg="yellow",cex=2)+}else{+points(x,y,pch=i,cex=2)+}+text(x+0.2,y,labels=i,font=2)+}>#pch取值可以为"*,?,a,A,0,.,+,-,|">points(6,4,pch="*",cex=2);text(6+0.2,4,labels="\"*\"",font=2)>points(6,3,pch="?",cex=2);text(6+0.2,3,labels="\"?\"",font=2)>points(6,2,pch="a",cex=2);text(6+0.2,2,labels="\"a\"",font=2)>points(6,1,pch="A",cex=2);text(6+0.2,1,labels="\"A\"",font=2)>points(7,5,pch="0",cex=2);text(7+0.2,5,labels="\"0\"",font=2)>points(7,4,pch=".",cex=2);text(7+0.2,4,labels="\".\"",font=2)>points(7,3,pch="+",cex=2);text(7+0.2,3,labels="\"+\"",font=2)>points(7,2,pch="-",cex=2);text(7+0.2,2,labels="\"-\"",font=2)>points(7,1,pch="|",cex=2);text(7+0.2,1,labels="\"|\"",font=2)PAGE9点线元素-线线元素可以设置的参数一般包括:线条样式(lty)、颜色(col)、粗细(lwd)等。其中线的粗细参数lwd与文本和点的大小cex相似,参数lwd(宽度)默认为1,表示不缩放。取小于1时,表示缩小,取大于1时,表示放大。线条样式(lty)主要指实线、虚线、点线、点划线等样式。参数lty的不同数值对应不同线条样式。9数值说明0不画线1实线2虚线3点线4点虚线5长虚线6双虚线>#线元素>plot(x=1:10,y=rep(1,10),type="l",lty=0,lwd=0,ylim=c(1,8),xlim=c(-1,10),+axes=F,xlab=NA,ylab=NA)>text(0,1,labels="lty=0;lwd=0")>for(iin2:7){+lines(x=1:10,y=rep(i,10),lty=i-1,lwd=i/2,xlab=NA,ylab=NA)+text(0,i,labels=paste0("lty=",i-1,";lwd=",i/2))+}低级绘图函数1002PAGE11标题许多高级函数(例如plot、barplot、boxplot、qqnorm)允许在绘图时设置坐标轴和文本。以下代码在图形上添加了主标题(main)、副标题(sub)、坐标轴标签(xlab、ylab)。可以使用低级绘图函数title()为图形添加标题和坐标轴标签。其基本表达形式为:title(main=NULL,sub=NULL,xlab=NULL,ylab=NULL,line=NA,outer=FALSE,...)11参数说明main设置主标题内容和文字属性sub设置副标题内容和文字属性xlab设置X轴标题内容和文字属性ylab设置Y轴标题内容和文字属性line设置line的值可以将标签移到图外面outer设置outer=TRUE可以将标签放在外部边距中>boxplot(Sepal.Length~Species,col=heat.colors(3),+main=list("Sepal.Length按照Species分类的箱线图",+font=4,col="red",cex=1.5),+sub=list("数据来源:iris数据集",font=3,+col="green",cex=0.8),+xlab="Species",ylab="Sepal.Length")>#title函数>boxplot(Sepal.Length~Species,col=heat.colors(3))>title(main=list("Sepal.Length按照Species分类的箱线图",+font=4,col="red",cex=1.5),+sub=list("数据来源:iris数据集",font=3,+col="green",cex=0.8),+xlab="Species",ylab="Sepal.Length")>boxplot(Sepal.Length~Species,col=heat.colors(3))>title(main="Sepal.Length按照Species分类的箱线图",+font.main=4,col.main="red",cex.main=1.5,+sub="数据来源:iris数据集",font.sub=3,+col.sub="green",cex.sub=0.8,+xlab="Species",ylab="Sepal.Length")PAGE12坐标轴在高级绘图函数中一般都有用于设置坐标轴展示和范围的参数axes、xlim和ylim。其中axes是逻辑参数,如果axes为TRUE(默认),则显示X轴和Y轴,如果axes为FALSE,则隐藏X轴和Y轴;参数xaxt为"n"或yaxt为"n"则将分别隐藏X轴或Y轴;参数xlim、ylim是设置X轴、Y轴范围。低级绘图函数axis()可以在图形上、下、左、右4个边上设置坐标轴,并设置坐标轴的范围/刻度标记等。其基本表达形式为:axis(side,at=NULL,labels=TRUE,tick=TRUE,line=NA,pos=NA,outer=FALSE,font=NA,lty="solid",lwd=1,lwd.ticks=lwd,col=NULL,col.ticks=NULL,hadj=NA,padj=NA,...)12>#加载iris数据到内存>attach(iris)>#绘制箱线图>boxplot(Sepal.Length~Species,col=heat.colors(3),+axes=FALSE,xlab="Species",ylab="Sepal.Length")>#设置X轴样式>axis(side=1,at=1:3,labels=unique(Species),col.axis="red",tick=FALSE)>#设置Y轴样式>axis(side=2,col.ticks="gold",font=3,col="blue")PAGE13图例当图形中包含的数据不止一组时,通常会使用不同的颜色进行区分,并且使用图例说明不同颜色代表的组别。图例中即包含文字、也包含点和线元素。可以利用legend()函数来对图例参数进行设置。13参数说明x和y图例的坐标位置,除了使用参数x和y外,也可以使用"bottomright","bottom","bottomleft","left","topleft","top","topright","right"和"center"等表示位置的英文单词legend一个字符向量,表示图例中的文字fill字符向量,设置每个图例标签的颜色。col图例中点/线的颜色lty图例中线条的类型lwd图例中线条的宽度pch向量,图例中的点符号bty图例边框的类型bg图例边框的背景色horiz图例的摆放方式,为FALSE(默认)时,图例垂直排列,为TRUE时,图例水平排列title设定图例的标题ncol设置图例的列数adj图例文字的对齐方式>#绘制分组柱状图>barplot(VADeaths,beside=TRUE,col=cm.colors(5))>#添加图例>legend("top",legend=rownames(VADeaths),+ncol=5,fill=cm.colors(5),bty="n")PAGE14网格线使用grid()函数可以在图形中添加网格线,其参数主要包括:ny用于设置水平网格的数目,nx用于设置垂直网格的数据,设置为NA时,表示不绘制相应的网格线。参数lwd、lty和col分别设置网格线的宽度、样式和颜色。14>op<-par(mfcol=1:2)>barplot(VADeaths,beside=TRUE,col=cm.colors(5),+main="plotVADeathswithgrid()")>grid()>barplot(VADeaths,beside=TRUE,col=cm.colors(5),+main="plotVADeathswithgrid(NA,7,lty=2,lwd=1.5,col='green')")>grid(NA,7,lty=2,lwd=1.5,col="green")>par(op)PAGE15点通过低级绘图函数points()可以在图上绘制点,其基本表达形式为:
points(x,y=NULL,type="p",...)使用这个函数可以很方便地在已有的图形上加点。参数x是横坐标位置,参数y是纵坐标位置,可以设置向量来代表多个点的位置;参数type有9种取值,分别代表不同的样式:"p"表示画点(默认),"l"表示画线,"b"表示同时画点和线,但点线不相交,"c"表示将type="b"中的点去掉,只剩下相应的线条部分,"o"表示同时画点和线,且相互重叠(这是与type="b"的区别),"h"表示画铅垂线,"s"表示画阶梯线,从一点到下一点时,先画水平线,再画垂直线,"S"也是画阶梯线,但从一点到下一点是先画垂直线,再画水平线,"n"表示做一幅空图。大部分plot()函数的参数都适用于points。最常用的参数是col(设置点的颜色)、bg(设置点的背景色)、pch(设置所绘制点的符号)、cex(设置点的大小)和lwd(设置符号边框线条的宽度)。15>set.seed(1234)>data<-c(rnorm(100,mean=0,sd=1),rnorm(3,mean=4,sd=1))>boxplot(data,col="violet",ylim=c(-4,5),outline=F)>points(rep(1,3),data[101:103],pch=21,bg="yellow",cex=1.2)PAGE16文字可以使用text()函数在图形基础上添加文字。其基本表达形式为:text(x,y=NULL,labels=seq_along(x),adj=NULL,pos=NULL,offset=0.5,vfont=NULL,
cex=1,col=NULL,font=NULL,...)16参数说明x,y设置文字的位置坐标labels字符向量,设置放到图形中的文字adj数值向量,有一个或两个值(介于0到1之间)。如果设置的是一个值,表示横向对齐。如果设置了两个值,第一个表示横向对齐,第二个表示纵向对齐pos数值,设置文字的位置。pos=1表示下方,pos=2表示左侧,pos=3表示上方,pos=4表示右侧offset数值,设置标签的偏移量,单位是字符宽度(只有使用了pos时才生效)vfont两个元素的字符向量,设置标签的字体。cex设置文字的大小col设置文字的颜色font设置文字的字体>#pos=4表示在右侧>text(rep(1,3),data[101:103],pos=4,label=paste0("异常值",data[101:103]))PAGE17线:lines()函数绘制曲线lines()函数可以在已有图形中添加曲线,其基本表达形式为lines(x,y=NULL,type="l",...)。plot()函数的很多参数也可用于lines()函数,较常用的参数包括lty(线条类型)、lwd(线条宽度)、col(线条颜色)等。由于绘制散点图的高级绘图函数plot()没有参数add,即在同一绘图窗口中不能使用两个plot()函数,此时可以使用lines()函数实现。17>data(economics,package="ggplot2")>attach(economics)#将economics加载到内存>plot(date,psavert,type="l",ylab="",ylim=c(0,26))#绘制psavert随时间变化的时序图>lines(date,uempmed,type="l",col="blue")#绘制uempmed曲线,并设置为蓝色>detach(economics)#将economics从内存中移除PAGE18线:abline()函数绘制直线使用abline()函数可以在已有图形中添加直线。abline()函数的基本表达形式是:
abline(a=NULL,b=NULL,h=NULL,v=NULL,reg=NULL,coef=NULL,untf=FALSE,...)18参数说明a直线截距b直线的斜率h画水平线时的纵轴值v画垂直线时的横轴值reg设置一个带coef方法的对象coef用函数coef提取系数(包含斜率和截距)的R对象>attach(iris)>#绘制一幅简单的散点图>plot(Petal.Length~Petal.Width)>#绘制Petal.Length变量均值的水平线>abline(h=mean(Petal.Length),col="gray60")>#绘制Petal.Width变量均值的竖直线>abline(v=mean(Petal.Width),col="gray60")>#绘制拟合直线>abline(lm(Petal.Length~Petal.Width),+col="red",lwd=2,lty=3)>detach(iris)高级绘图函数1903PAGE20高级绘图函数R语言提供了绘制常见图形的工具,包括散点图、气泡图、柱状图、饼图、线图,同时也提供了一些专业的统计图形,如茎叶图、Q-Q图等。表6-9列出了基础包中常绘制的一些图形。20高级绘图函数描述plot(x)以x的元素值为纵坐标、以序号为横坐标绘图plot(x,y)x(在X轴上)与y(在Y轴上)的二元作图sunflowerplot(x,y)同上,但是以相似坐标的点作为花朵,其花瓣数目为点的个数pie(x)饼图boxplot(x)盒形图(又称箱线图、箱形图)dotchart(x)如果x是数据框,作Cleveland点图(逐行逐列累加图)mosaicplot(x)列联表的对数线性回归残差的马赛克图pairs(x)散点图矩阵hist(x)直方图barplot(x)条形图qqnorm(x)正态分位数-分位数图qqplot(x,y)y对x的分位数-分位数图contour(x,y,z)等高线图image(x,y,z)同上,但是实际数据大小用不同色彩表示stars(x)星状图symbols(x,y,...)在由x和y给定坐标画符号(圆,正方形,长方形,星,温度计式或者盒形图),符号的类型、大小、颜色等由另外的变量指定heatmap(x)热度图smoothScatter(x)高密度散点图stem(x)茎叶图PAGE21散点图R语言中创建散点图的基础函数是plot(x,y),其中x和y是数值型向量,代表图形中的(x,y)点。如果样本变量只有一个,则需要把参数x设置为样本数据。21>par(mfrow=c(1,2))>#绘制一维数据>plot(x=rnorm(10))>#绘制二维数据>plot(women)>par(mfrow=c(1,1))PAGE22散点图矩阵散点图矩阵是散点图的高维扩展,它从一定程度上克服了在平面上展示高维数据的困难,在展示多维数据的两两关系时有着不可替代的作用。R语言中有多种绘制散点图矩阵的函数。plot()函数可以绘制散点图矩阵,此外基础包还有专门绘制散点图矩阵的pairs()函数。22>#绘制散点图矩阵>plot(iris[,1:4],col=iris$Species,+main="利用plot函数绘制散点图矩阵")>#方法一>pairs(iris[,1:4],col=iris$Species,+main="利用pairs函数绘制散点图矩阵")>#方法二>pairs(~Sepal.Length+Sepal.Width+Petal.Length+Petal.Width,+data=iris,col=iris$Species,+main="利用pairs函数绘制散点图矩阵")PAGE23高密度散点图当点非常多时,有些点可能重叠在一起,通过plot()函数无法体现点的密集情况,此时可以通过smoothScatter()函数来实现。23>#创建一个大数据集>n<-10000>x1<-matrix(rnorm(n),ncol=2)>x2<-matrix(rnorm(n,mean=3,sd=1.5),ncol=2)>M<-rbind(x1,x2)>#利用plot与smoothScatter函数绘制散点图>par(mfrow=c(1,2))>plot(M,main="利用plot函数绘制普通散点图")>smoothScatter(M,main="利用smoothScatter函数绘制高密度散点图")>par(mfrow=c(1,1))PAGE24气泡图-plot()函数散点图只能较好地展示二维数据,气泡图则是在其基础上通过散点的大小来表达第三维变量的数值。同样,也可以使用plot()函数绘制气泡图,通过将第三个变量赋予参数cex来控制气泡的大小。24>#气泡图>data("diamonds",package="ggplot2")>#随机抽取500个样本>set.seed(1)>diamonds1<-diamonds[sample(1:nrow(diamonds),500),]>attach(diamonds1)>#计算钻石体积>volumn<-x*y*z>#把钻石体积进行归一化处理,并赋予对象size>size<-(volumn-min(volumn))/(max(volumn)-min(volumn))>#利用plot函数绘制气泡图>plot(carat,price,cex=size*2)PAGE25气泡图-symbols()函数也可以用symbols()函数来创建气泡图。该函数可以在指定的(x,y)坐标上绘制圆圈图、方形图、星形图、温度计图和箱线图。以绘制圆圈图为例:symbols(x,y,circle=r),其中参数x、y和circle分别表示X轴、Y轴和圆圈半径。25>#利用symbols函数绘制气泡图>set.seed(111)>x<-rnorm(10)>y<-rnorm(10)>r<-abs(rnorm(10))>symbols(x,y,circle=r,+bg=rainbow(10))PAGE26线图通过设置plot()函数的参数type,将图上的散点从左往右连接起来,就可以得到一个线图。在绘制线图时,参数type可以设置的值如表所示。26类型类型描述l表示画线b表示同时画点和线,但点线不相交c表示将type="b"中的点去掉,只剩下相应的线条部分o表示同时画点和线,且相互重叠s表示画阶梯线,从一点到下一点时,先画水平线,再画垂直线S也是画阶梯线,从一点到下一点时,先画垂直线,再画水平线>type<-c('l','b','c','o','s','S')>par(mfrow=c(2,3))>for(iin1:6){+plot(1:10,type=type[i],main=paste0("type=",type[i]))+}>par(mfrow=c(1,1))PAGE27柱状图在R语言中用barplot()函数可以绘制柱状图和条形图。下表给出了barplot()函数的主要参数说明。27参数说明height绘图的数据,如果绘制一组数据,则以向量形式输入,如果绘制多组数据,则以矩阵形式输入,每行表示一组数据horiz如果是FALSE(默认)则绘制柱状图,如果是TRUE则绘制条形图beside如果是FALSE(默认)则不同组数据垂直堆积展示(堆积柱状图),如果是TRUE则不同组数据水平并列展示(分组柱状图)width数值向量,表示柱子的宽度names.arg设置各个柱子(或各组柱子)名称的字符向量add逻辑值,表示是否在已有图形上添加柱子legend.text字符向量或逻辑值,如果设置的是逻辑值,图例就用height的行名称来设置,如果设置的是字符向量,图例中就会使用设置的字符向量>par(mfrow=c(1,2))>for(iinc(FALSE,TRUE)){+barplot(VADeaths,horiz=i,beside=T,col=rainbow(5))+}>par(mfrow=c(1,1))PAGE28饼图饼图为一个有许
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四年度赠与合同条款与标的3篇
- 2024年幼儿园大班科学教案《磁铁的秘密》
- 2024年总承包服务费用合同范本版B版
- 2024年度铝板材销售协议样式版
- 2024年农业科技成果转化与推广应用服务合同2篇
- 2024年度智能路灯系统安装与维护一体化承包合同3篇
- 2024年合作伙伴加盟协议版B版
- 2024二手房屋转让合同
- 2024年度股权投资协议:某创业公司的A轮融资
- 2024版木材行业碳排放减少合同3篇
- 工程力学知到智慧树章节测试课后答案2024年秋湖南工学院
- 第七届重庆市青少年科学素养大赛考试题库(含答案)
- 地理2024-2025学年人教版七年级上册地理知识点
- 河南省郑州市外国语中学2024-2025学年上学期期中考试九年级数学试卷
- 电商红枣规划
- 商业街区装修施工突发应急预案
- 水利信息化数据中心及软件系统单元工程质量验收评定表、检查记录
- 医院培训课件:《新进护士职业规划》
- 骨科疼痛的护理与评估
- 园林绿化安全生产培训
- 胖东来商贸集团员工考核管理制度
评论
0/150
提交评论