《R语言程序设计》 课件 第4章 数据可视化_第1页
《R语言程序设计》 课件 第4章 数据可视化_第2页
《R语言程序设计》 课件 第4章 数据可视化_第3页
《R语言程序设计》 课件 第4章 数据可视化_第4页
《R语言程序设计》 课件 第4章 数据可视化_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据可视化绘图基础R基本绘图包:graphics高级绘图函数:plot()函数,直方图、密度图、箱线图、饼图、散点图、热力图……低级绘图函数:颜色,点,文本,线条,图例,坐标轴……绘图进阶R拓展绘图包:ggplot2绘制更丰富的图形:ggplot()函数综合实验目录绘图基础R基本绘图包:graphics高级绘图函数绘制多种图形:plot()函数直方图、密度图、箱线图、饼图、散点图、热力图……低级绘图函数颜色,点,文本,线条,图例,坐标轴……图形组合和保存组合多幅图形输出图形到屏幕、文件目录基本绘图包graphics提供丰富的数据可视化函数高级绘图函数绘制完整的图形低级绘图函数增加图形中的元素R基本绘图包:graphics>help(graphics)绘图函数:plot()>help(plot)常用绘图函数:plot()可绘制多种类型的图形散点图折线图、点线图、阶梯图等是一个泛型函数>plot(xy坐标数据,type类型,main标题,sub副标题,xlabX轴标题,ylabY轴标题...)美国MotorTrend杂志收集的1973到1974年期间32种车型的11个指标:油耗及10个与设计及性能方面的指标。mtcars数据集>help(mtcars)>help(mtcars)#查看帮助文档>head(mtcars)#显示前几行数据>nrow(mtcars)#行数>attach(mtcars)>plot(wt,mpg)>detach(mtcars)绘图函数:plot()横坐标(重量):wt:Weight(1000lbs)纵坐标(里程):mpg:Miles/Gallon>plot(mtcars$wt,mtcars$mpg)#以mtcars数据集为例,显示重量和里程的关系。或#attach():把数据库加入R的搜索路径>attach(mtcars)>plot(wt,mpg,type='h',col='red')>detach(mtcars)绘图函数:plot()横坐标(重量):wt:Weight(1000lbs)纵坐标(里程):mpg:Miles/Gallon#'h'for'histogram'like(or'high-density')verticallines#plot函数中的参数的使用绘图函数:plot()plot()函数产生一个图形使用plot等高级绘图函数,新建一个图形。通过对函数的参数赋值,确定图形的基本样式。若需要更为丰富的图形元素,可逐条输入低级绘图函数实现。丰富的高级绘图函数其他高级绘图函数高级绘图函数函数功能plot()绘制散点图等多种图形hist()绘制直方图boxplot()绘制箱线图stripchart()绘制点图(带状图)barplot()绘制条形图dotplot()绘制点图pie()绘制饼图matplot()绘制数学图形其他高级绘图函数>x<-1:5>par(font=1)#设定公共的图形参数>hist(x,main='直方图',xlab='x')#绘制直方图>stripchart(x,main=‘点图’,xlab=‘x’,ylab=‘y’)#绘制一维散点图>boxplot(x,main=‘箱线图,xlab=’x‘,ylab=’y’)#绘制箱线图>barplot(x,names.arg=c('A','B','C','D','E'))#绘制条形图>pie(x,labels=c('A','B','C','D','E'))#绘制饼图>x=1:30#绘制余弦曲线>y=cos(x*pi/15)>matplot(x,y,pch=21)#绘制数学图形其他高级绘图函数>attach(mtcars)#以mtcars为例>hist(wt)#绘制直方图>boxplot(wt)#绘制箱线图>bardata<-table(cyl,carb)>#绘制条形图>barplot(bardata,beside=TRUE)>pie(table(cyl))#绘制饼图>detach(mtcars)#wt:重量,cyl:气缸数,carb:化油器数量#table函数用于记录频数(列联表)详见后面章节图形中的元素颜色、文字、点、线、坐标轴、主标题、副标题、轴标题、图例低级绘图函数低级绘图函数:颜色>plot(c(1:9),type='b',col='black')>text(6,5,labels='文字',col='red')>points(2,5,col='blue')设置颜色:在函数中使用参数‘col=颜色名’来设置颜色colors()函数:显示R语言中所有可用的657种固定颜色名低级绘图函数:颜色>colors()[1:20][1]'white''aliceblue''antiquewhite''antiquewhite1''antiquewhite2'[6]'antiquewhite3''antiquewhite4''aquamarine''aquamarine1''aquamarine2'[11]'aquamarine3''aquamarine4''azure''azure1''azure2'[16]'azure3''azure4''beige''bisque''bisque1'>pdf(‘colors-bar.pdf’,height=120)#在工作目录下自动生成空文件>par(mar=c(0,10,3,0)+0.1,yaxs='i')#设置公共图形参数

>#绘制条形图>barplot(rep(1,length(colors())),col=rev(colors()),+names.arg=rev(colors()),horiz=T,las=1,+xaxt='n’,main=expression('Barsofcolorsin'~italic(colors())))>dev.off()#关闭基于文件的图形设备,即完成文件的写入示例:将颜色名称及其对应的颜色输出在一个PDF文件中。低级绘图函数:颜色低级绘图函数:颜色>barplot(c(1:5))>barplot(c(1:5),col=c('red','white','blue','black','orange'))使用rgb函数,通过数值设置颜色。

低级绘图函数:颜色>plot(c(1:9),type='b',col='black')>text(6,5,labels='文字',col=newCol)>newCol<-rgb(red=126,green=255,blue=211,max=255)rainbow():彩虹系列颜色低级绘图函数:颜色调色板特定颜色主题的配色方案>barplot(rep(1,41),+col=c(rainbow(n=6,start=0,end=1/6),'white',+rainbow(n=6,start=1/6,end=2/6),'white’,+ rainbow(n=6,start=2/6,end=3/6),'white’,+ rainbow(n=6,start=3/6,end=4/6),'white’,+ rainbow(n=6,start=4/6,end=5/6),'white',+rainbow(n=6,start=5/6,end=1)))>axis(side=1,at=seq(from=3,length.out=6,by=8.5),+labels=c('赤色','黄色','绿色','青色','蓝色','紫色’),cex=0.75)>par(mfrow=c(2,2))#设置显示图形的行和列数>barplot(rep(1,6),col=heat.colors(6),main='col=heat.colors(6))')>barplot(rep(1,6),col=terrain.colors(6),main='col=terrain.colors(6))')>barplot(rep(1,6),col=topo.colors(6),main='col=topo.colors(6))')>barplot(rep(1,6),col=cm.colors(6),main='col=cm.colors(6))')>par(mfrow=c(1,1))#恢复其他主题配色:heat.colors()、terrain.colors()、topo.colors()、cm.colors()等低级绘图函数:颜色调色板使用brewer.pal()函数生成颜色配色方案:连续型(seq):生成一系列连续渐变的颜色,可标记连续型数值的大小。极端型(div):生成用深色强调两端、浅色标示中部的系列颜色,可标记数据中的离群点。离散型(qual):生成一系列彼此差异比较明显的颜色,通常用来标记分类数据。颜色扩展包:RColorBrewer颜色扩展包:RColorBrewer>library(RColorBrewer)>display.brewer.all(type='seq')>#使用YlOrRd组的第3~8种颜色>barplot(rep(1,6),+col=brewer.pal(9,'YlOrRd')[3:8])颜色-赏析RColorBrewer包中连续型系列颜色:共18组,每组9个渐变颜色。颜色-赏析RColorBrewer包中的极端型系列颜色:共9组,每组11个渐变颜色。>library(RColorBrewer)>display.brewer.all(type='div')>#使用BrBG组的第3~8种颜色>barplot(rep(1,6),+col=brewer.pal(11,'BrBG')[3:8])颜色-赏析RColorBrewer包中离散型系列颜色:共8组,每组多个渐变颜色。>library(RColorBrewer)>display.brewer.all(type='qual')设置颜色:在函数中使用参数'col=颜色名'来设置colors():查看颜色名rgb():

通过数值设置颜色颜色调色板:rainbow()等颜色扩展包:RColorBrewer连续型(seq)、极端型(div)、离散型(qual)系列颜色低级绘图函数:颜色小结text()函数参数font:分别用1、2、3、4表示正常体、粗体、斜体和粗斜体低级绘图函数:文字文字元素可以设置的参数:字体(font)、颜色(col)、大小(缩放倍数cex)等。>plot(c(0:5),col='white')>text(2,4,labels='font=1:正常字体(默认)',font=1)>text(3,3,labels='font=2:粗体字体',font=2)>text(4,2,labels='font=3:斜体字体',font=3)>text(5,1,labels='font=4:粗斜体字体',font=4)点元素可以设置的参数:样式(pch)、颜色(col)、大小(缩放倍数cex)等。points()函数主要参数低级绘图函数:点参数描述pch点的样式,取整数0-25或字符'*','、','.','o','O','0','+','-','|'等cex点的大小,1(默认)表示不缩放,小于1表示缩放,大于1表示放大col点边框填充的颜色bg点内部填充的颜色,仅限21-25样式的点lwd点边框的宽度,1(默认)表示正常宽度,小于1表示缩放,大于1表示放大>plot(1,col='white',xlim=c(1,9),ylim=c(1,7))>for(iinc(0:25)){#循环在x、y位置放置点+x<-(i%/%5)*1+1+y<-6-(i%%5)+if(length(which(c(21:25)==i)>=1)){+points(x,y,pch=i,bg='red',cex=2)+}else{+points(x,y,pch=i,cex=2)+}+#21-25可以设置背景颜色+text(x+0.2,y+0.2,labels=paste('pch=',i))+}低级绘图函数:点低级绘图函数:线曲线:lines()函数、直线:abline()函数、线段:segments()函数类型形式说明直线abline(a,b)绘制y=a+bx直线水平线abline(h=y)绘制水平直线垂直线abline(v=x)绘制垂直直线线性模型回归直线abline(lm,obj)绘制lm函数的回归直线模型lines():灵活绘制线abline():绘制直线线条样式(lty)低级绘图函数:线线可以设置的参数:线条样式(lty)、颜色(col)、粗细(lwd)等数值字符串说明数值字符串说明0'black'不画线4'dot-dash'点画线1'solid'实线5'longdash'长画线2'dashed'虚线6'twodash'点长画线3'dotted'点线

>data<-matrix(rep(rep(1:7),10),ncol=10,nrow=7)>plot(data[1,],type='l',lty=0,ylim=c(1,8),xlim=c(-1,10),axes=F)>text(0,1,labels='lty=0')>for(iinc(2:7)){+lines(data[i,],lty=i-1)+text(0,i,labels=paste('lty=',i-1))+}低级绘图函数:线示例:查看lty参数取值为0~6时的样式>data<-matrix(rep(rep(1:6),10),ncol=10,nrow=6)>plot(data[1,],type='l',lwd=0.5,ylim=c(1,8),xlim=c(-1,10),axes=F)>text(0,1,labels='lwd=0.5')>lines(data[2,],type='l',lwd=0.8);text(0,2,labels='lwd=0.8')>lines(data[3,],type='l',lwd=1);text(0,3,labels='lwd=1')>lines(data[4,],type='l',lwd=1.5);text(0,4,labels='lwd=1.5')>lines(data[5,],type='l',lwd=2);text(0,5,labels='lwd=2')>lines(data[6,],type='l',lwd=4);text(0,6,labels='lwd=4')低级绘图函数:线示例:查看线条宽度lwd(默认为1不缩放,小于1时缩小,大于1时放大)lines()函数,可通过散点样本的坐标绘制任意曲线。低级绘图函数:线>#drawasmoothlinethroughascatterplot>plot(cars,main='StoppingDistanceversusSpeed')>lines(stats::lowess(cars))#绘制局部加权回归(lowess)平滑曲线标题:包括主标题、副标题、x轴标题、y轴标题。title()函数低级绘图函数:标题参数说明实例main主标题main='主标题'main=list('主标题',font=3,col='red',cex=1.5)sub副标题sub=list('副标题',font=3,col='red',cex=1.2)xlabx轴标题xlab=list('x轴标题,font=3,col='red',cex=0.75)ylaby轴标题ylab=list('y轴标题,font=3,col='red',cex=0.75)>data<-data.frame(pre=c(113,134,123,145,137,196,187),+now=c(129,122,134,149,146,215,208))>mycol=c('azure4','brown4')>barplot(as.matrix(rbind(data$pre,data$now)),+beside=TRUE,ylim=c(0,550),col=mycol,axes=F,+main=list('本周趋势分析图',cex=1.5,col='red',font=3),+sub=paste('数据来源:某电商网站'),+ylab='网站日页面浏览量')>axis(2)低级绘图函数:标题示例:在绘图函数中直接设置参数>data<-data.frame(pre=c(113,134,123,145,137,196,187),+now=c(129,122,134,149,146,215,208))>mycol=c('azure4','brown4')>barplot(as.matrix(rbind(data$pre,data$now)),+beside=TRUE,ylim=c(0,ylim.max),col=mycol,axes=F)>title(main=list('本周趋势分析图’,+cex=1.5,col='red',font=3),+sub='数据来源:某电商网站'),+ylab='网站日页面浏览量')>axis(2)低级绘图函数:标题示例:通过title()函数设置参数当图形中包含多组数据时,图例可以帮助辨别legend()函数低级绘图函数:图例>text.legend<-c('上周','本周')>legend('top',pch=c(15,15),+legend=text.legend,+col=mycol,horiz=TRUE)坐标轴:主坐标轴(x轴和y轴),副坐标(右侧的纵坐标)axis()函数:可在上、下、左、右4个边上设置坐标轴范围/刻度标记等grid()函数:网格线低级绘图函数:坐标轴>x.text=c("1月","2月","3月","4月","5月","6月","7月",+"8月","9月","10月","11月","12月")>sales.volume=c(150000,190000,180000,92000,68000,90000,+56000,186000,100000,89000,90000,150000)>plot(sales.volume,type="b",ylim=c(20000,250000),xaxt="n",+main="月销量趋势图",xlab="月份",ylab="销量(元)")>axis(1,at=1:12,labels=x.text,tick=FALSE)>grid(nx=NA,ny=8,lwd=1,lty=2,col="blue")使用par()或layout()函数组合多幅图形为一幅图形图形组合参数描述mfrow/mfcol页面摆放,把一个页面平分成多行和多列,mfrow从左到右作图,mfcol从上到下作图mai/mar图形边距,mai(英寸边距)和mar(行边距),四个边距的顺序是下、左、上、右mgp坐标轴位置,依次为标题、刻度标签和刻度的位置oma外边界宽度;类似mar,默认为c(0,0,0,0)在RStudio集成开发环境中,生成的图形将直接显示在界面右侧。还可以通过函数windows()和X11()将图片输出到屏幕,windows()用于Windows系统,X11()用于UNIX类型系统的桌面系统。图形保存输出到屏幕>windows()#打开图形设备界面>plot(iris[,1],iris[,2])#数据集中第1和第2列的数据集合>X11()#打开图形设备界面>plot(iris[,3],iris[,4])数据集中第3和第4列数据集合图形保存输出到文件(多种文件格式)>pdf(“filename.pdf”)>png(“filename.png”)>jpeg(“filename.jpeg”)>bmp(“filename.bmp”)#自动生成准备保存图形的空文件,默认在工作目录下。>pdf(“p.pdf”)>plot(iris[,3],iris[,4])#生成图形,不显示在屏幕中>dev.off()#将图形写入基于文件的设备中,结束关联R基本绘图包:graphics高级绘图函数:plot()函数,直方图、密度图、箱线图、饼图、散点图……低级绘图函数:颜色,点,文本,线条,图例,坐标轴……图形组合和保存练习:熟悉本章节示例代码,掌握常用绘图函数的用法。使用数据集,通过绘制图形了解数据关系。小结绘图进阶R拓展绘图包:ggplot2包图形是由从数据到几何对象、图形属性的映射包括统计变换的丰富函数支持qplot():类似plot()函数ggplot():将数据与图形分离,按图层作图,用“+”号连接函数绘制更丰富的图形其他第三方绘图包目录图形是由从数据到几何对象、图形属性的映射。提供丰富的函数图形属性函数(aestheticattributes):aes()几何对象函数(geometricobject):geom_XXX()

统计变换函数(statisticaltransformation):stat_XXX()

标度绘图函数:scale_XXX()其它修饰函数:标题、图例、分面等。ggplot2绘图包几何绘图函数几何绘图函数描述geom_area面积图(连续的条形图)geom_bar条形图geom_boxplot箱线图geom_contour等高线图geom_density密度图geom_errorbar误差线geom_histogram直方图geom_jitter点图(自动添加扰动)geom_line线geom_point散点图geom_text文本geom_XXX()统计绘图函数统计绘图函数描述stat_abline添加线条,用斜率和截距表示stat_boxplot绘制带触须的箱线图stat_contour绘制三维数据的等高线图stat_density绘制密度图stat_density2d绘制二维密度图stat_function添加函数曲线stat_hline添加水平线stat_smooth添加平滑曲线stat_sum绘制不重复的取值之和stat_summary绘制汇总数据stat_XXX()功能:快速作图(quickplot)使用方法与plot()函数类似常用函数:qplot()>library(ggplot2)>qplot(Sepal.Length,Sepal.Width,data=iris,colour=Species,shape=Species,+main=”花萼长度和宽度散点图”)>qplot(Species,Sepal.Length,data=iris,geom=”boxplot”,fill=Species,+main=“不同种类的花萼长度箱线图”)>qplot(Species,Sepal.Length,data=iris,geom=c(“violin”,”jitter”),+fill=Species,main=”不同种类的花萼长度小提琴图”)ggplot()函数:生成精美复杂的图形数据与图形分离,按图层作图。使用ggplot()函数初始化图形,用“+”连接函数,构成新图层。常用函数:ggplot()>library(ggplot2)>help(ggplot)常用函数:ggplot()>P<-ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width,colour=Species))data=irisaes(x=Sepal.Length,y=Sepal.Width,colour=Species)aes:将数据映射到图形属性中x,y:数据对坐标轴的映射colour:数据对颜色的映射>P<-P+geom_point()#通过“+”增加图层geom_point():几何绘图函数-散点图常用函数:ggplot()>P<-ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width,colour=Species))>P<-P+geom_point()#通过“+”增加图层初始化图形通过+geom_XXX函数增加图层>P<-ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width,colour=Species))>P<-P+geom_point(size=3)>P<-P+scale_color_manual(values=c("orange","olivedrab","navy"))>ggsave(file="hello.jpg",width=5,height=4)常用函数:ggplot()示例:改变缺省颜色,保存图形>P<-ggplot(iris,aes(x=Species,y=Sepal.Length,fill=Species))>P<-P+geom_boxplot()>P<-P+labs(title="Species")常用函数:ggplot()示例:生成箱线图常用函数:ggplot()示例:生成小提琴图>P<-ggplot(iris,aes(x=Species,y=Sepal.Length,fill=Species))>P<-P+geom_violin()>P<-P+labs(title="Speciesviolin")常用函数:ggplot()示例:生成密度图>P<-ggplot(data=singer,+aes(x=height,fill=voice.part))>P<-P+geom_density()>P<-P+facet_grid(voice.part~.)facet_grid():图形的组合绘制3D图形:plot3D包,plotly包,scatterplot3d包,等绘制交互式Web图形:rCharts包,htmlwidgets包,等绘制地图:leaflet包,maps包,等绘制特殊的图形:气泡图、茎叶图、脸谱图、相关图等第三方绘图包示例:绘制3D图形>install.packages("plot3D")#下载plot3D包>library(plot3D)>x<-y<-seq(0,10,by=0.5)#生成[0,10]区间内数据的x,y向量>xy<-mesh(x,y)#利用包中的mesh()函数生成网格数据,得到列表xy>z<-sin(xy$x)+cos(xy$y)+sin(xy$x)*cos(xy$y)#计算z的网格数据>hist3D(x,y,z,phi=45,theta=45,space=0.1,clokey=F,bty="g")#绘制3D直方图>surf3D(xy$x,xy$y,z,colkey=F,border="black",bty="b2")#绘制3D曲面图示例:使用地图#下载leaflet包>install.packages(‘devtools’)>require(devtools)>install_github(‘rstudio/leaflet’)>#绘制地图>m<-leaflet()>m<-addTiles(m)>m#显示地图>library(scatterplot3d)>attach(mtcars)>scatterplot3d(wt,disp,mpg,main="Basic3DScatterPlot")>detach(mtcars)示例:三维散点图>attach(mtcars)>r<-sqrt(disp/pi)>symbols(wt,mpg,circle=r,inches=0.30,+fg="white",bg="lightblue",+main="BubblePlotwithpointsizeproportionaltodisplacement",+ylab="MilesPerGallon",+xlab="WeightofCar(lbs/1000)")>text(wt,mpg,rownames(mtcars),cex=0.6)>detach(mtcars)示例:气泡图>cor(mtcars)>library(corrgram)>corrgram(mtcars,order=TRUE,lower.panel=panel.shade,+upper.panel=panel.pie,text.panel=panel.txt,+main="Correlogramofmtcarsintercorrelations")示例:相关图>library(aplpack)>data(longley)>faces(longley[1:9,])示例:脸谱图1973年,Chernooff.H.提出了将样本属性用人脸的某一部位表示,这样就勾画出一个人的脸谱,脸谱之间的差异反映了所对应的样品之间的特性。R拓展绘图包:ggplot2包图形是由从数据到几何对象、图形属性的映射包括统计变换的丰富函数支持常用函数:qplot()常用函数:ggplot()绘制更丰富的图形小结综合实验理解数据可视化的含义。掌握plot()函数的用法。熟悉本章节示例代码,了解常用绘图函数的用法。了解ggplot2绘图包中常用函数的用法。了解绘制地图的方法。能够通过help方法自学函数及其中参

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论