ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:341.04KB ,
资源ID:5607840      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5607840.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(R语言学习系列18图形元素.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

R语言学习系列18图形元素.docx

1、R语言学习系列18图形元素18. 图形元素目录:一. 函数plot二. 颜色三. 点四. 文字五. 线条六. 图例七. 坐标轴八. 子图九. 图形保存正文:R语言具有强大的图形可视化功能,可以逐条输入语句构建图形元素(颜色、点、线、文字、及图例等),逐渐完善图形特征,直到得到想要的效果。图形元素的显示可以用图形函数和par函数的绘图参数来改良,也可以用绘制图形元素的基础函数来控制。一、函数plot() 绘制二维散点图,基本格式为:plot(x, y=NULL, type = p, xlim=NULL, ylim=NULL,log=, main=NULL, sub=NULL, xlab=NULL

2、, ylab=NULL,ann=., axes=TRUE, frame.plot=axes, .)其中,x, y为坐标值,要求长度相同;type指定图形的类型,默认为p(圆圈的点),l表示线,b表示点线,c表示挖去点的线,o穿过点的线,s和S表示两种阶梯形,h表示像直方图的竖线;xlim设定x轴的范围;ylim设定y轴的范围;log=x或y或xy,设置坐标值用e的幂次形式显示;main设定主标题;sub设定副标题;xlab设定x轴标签;ylab设定y轴标签;ann设置是否显示标题和坐标轴标签;axes设置是否显示坐标轴;frame.plot设置是否显示图形区域的外边框二、颜色1. 绘图参数co

3、l用来设置图形元素的颜色R语言自带657种颜色,用函数colors()可显示它们的名字。R语言提供了固定调色板函数palette()包括8种颜色(可自定义,用palette(default)恢复默认),则用数字18表示相应的颜色。palette() #默认包含的8种颜色1 black red green3 blue cyan magenta yellow gray 设置图形颜色的例:attach(mtcars)plot(wt,mpg,col=red)points(wtcyl=6, mpgcyl=6,col=3)points(wtcyl=8, mpgcyl=8,col=4)cl=c(red,gr

4、een,blue)legend(5,35,c(4,6,8),pch=1,col=cl,bty = n)detach(mtcars)注:若设定颜色的整数8,将取余。2. 生成渐变颜色R语言提供了一系列渐变颜色的生成函数,用来控制颜色值逐步变化。(1) RGB模型(红绿蓝混合)rgb(red, green, blue, alpha, max)将RGB颜色转化为16进制数值;max指定最大值255或1;red, green, blue在0, max中取值;alpha为透明度,0表示完全透明,取max值表示完全不透明;例如,rgb-rgb(red=255,green=1:255,blue=0,max=

5、255)生成 #FF0100 #FF0200#FFFF00 共255个颜色值,依次使用它们实现渐变效果。(2) 彩虹色(赤橙黄绿青蓝紫)rainbow(n, start, end, alpha)(3) 高温、白热化(红黄白)heat.colors(n, start, end, alpha)(4) 地理图形(绿黄棕白)terrain.colors(n, start, end, alpha)(5) 蓝青黄棕topo.colors(n, start, end, alpha)(6) 青白粉红cm.colors (n, start, end, alpha)其中,n设定产生颜色的数目;start和end设

6、定该类颜色的一个子集,生成的颜色将从该子集中产生;alpha为透明度。(7) RColorBrewer包提供的3套配色方案col=brewer.pal(n, name)n为颜色数目(3);name为颜色组名。用display.brewer.all(type=.)设定调色方案:“seq”表示连续型(连续渐变);“div”表示极端型(用深色表示两端,浅色表示中间,可用来标记数据的离群点);“qual”表示离散型(生成一系列彼此差异比较明显的颜色,常用来标记分类数据)。cl=brewer.pal(3,Dark2) #使用RColorBrewer包配色方案par(mfrow=c(1,1)plot(wt

7、,mpg,col=cl1)points(wtcyl=6,mpgcyl=6,col=cl2)points(wtcyl=8,mpgcyl=8,col=cl3)legend(5,35,c(4,6,8),pch=1,col=cl,bty=n)cl=rainbow(3) #使用rainbow函数配色plot(wt,mpg,col=cl1)points(wtcyl=6,mpgcyl=6,col=cl2)points(wtcyl=8,mpgcyl=8,col=cl3)legend(5,35,c(4,6,8),pch=1,col=cl,bty=n)pie(rep(1, 12), col = rainbow(1

8、2)三、点用函数points()在画布中添加点,基本格式为:points(x, y, pch=, cex=, bg=, font=, lwd=)其中,x, y为点的坐标位置;pch指定点的样式,取025或*,.等符号:cex设定点的大小,默认为1(不缩放),小于1表示缩小,大于1表示放大;col设定点边框填充的颜色;bg设定点内部填充的颜色,仅限2125号样式的点;font设置字体,默认为1表示正常字体,2表示粗体,3表示斜体,4表示粗斜体;lwd设置点边框的宽度,默认为1(不缩放),小于1表示缩小,大于1表示放大attach(mtcars)head(mtcars,3) mpg cyl dis

9、p hp drat wt qsec vs am gear carbMazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1cyl-as.factor(cyl)cyl 1 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4Levels: 4 6 8plot(wt, mpg, co

10、l=white)as.integer(cyl) 1 2 2 1 2 3 2 3 1 1 2 2 3 3 3 3 3 3 1 1 1 1 3 3 3 3 1 1 1 3 2 3 1points(wt, mpg, pch=as.integer(cyl), col=as.integer(cyl)legend(5, 35, c(4,6,8), pch=1:3, col=1:3, bty=n)detach(mtcars)或者使用绘图参数改变点的样式,结果是一样的:plot(wt, mpg, pch=as.integer(cyl), col=as.integer(cyl)legend(5, 35, c(4

11、,6,8), pch=2:4, col=2:4, bty=n)四、文字文字属性参数:cex设定字体大小,默认为1(不缩放),小于1表示缩小,大于1表示放大;col设定字体颜色; font设置字体样式,默认为1表示正常字体,2表示粗体,3表示斜体,4表示粗斜体。 1. 函数title()给图形添加标题基本格式为:title(main=., sub=., xlab=., ylab=.,outer=FALSE, .)其中,main为主标题,sub为副标题,xlab为x轴标题,ylab为y轴标题,它们的值都是列表list(text, font=, col=, cex=, );outer,默认为FALS

12、E,设置是否把标题在图形区域外面显示。实例:plot(c(0:5),col=white,xlab=,ylab=)title(main=list(主标题,cex=1.5),sub=list(副标题,cex=1.2), xlab=x轴标题,ylab=y轴标题) 2. 函数text()向图形任意位置添加文字基本格式为:text(x, y=NULL, labels=., cex=1, col=NULL, font=NULL, .)其中,x, y设定文字的位置;labels为文字内容。实例:plot(c(0:5),col=white)text(3,2,labels=font=4:粗斜体字体,font=4

13、, cex=1.5)3. 函数mtext()向图形的四条边上添加文字基本格式为:mtext(text, side=3, line=0, cex=NA, col=NA, font=NA, .)其中,text为文字内容;side设置哪一条边,1表示下,2表示左,3表示上,4表示右;line设置文字与图形边缘的距离,默认为0实例:mtext(side=1:下边,side=1,line=2); mtext(side=2:左边 ,side=2,line=2)mtext(side=3:上边,side=3); mtext(side=4:右边 ,side=4) cyl=as.factor(cyl)plot(w

14、t,mpg,col=white,xlab=,ylab=)text(wt,mpg,cyl,col=as.integer(cyl)+1)title(main=list(Miles per Gallon vs. Weight by Cylinder,cex=1.5),xlab=Weight,ylab=Miles per Gallon)#或者通过绘图参数实现相同的效果plot(wt,mpg,pch=as.character(cyl),col=as.integer(cyl)+1,xlab=Weight,ylab=Miles per Gallon , main=Miles per Gallon vs. W

15、eight by Cylinder, cex.main=1.5)五、线条线条属性参数:lty设置线条样式,用数字表示:lwd设置线条粗细,默认为1(正常宽度),小于1(变细),大于1(变粗)。 1. 函数lines()绘制曲线基本格式为:lines(x, y, type=l,lty=, lwd=, col=, .)其中,x,y为点的坐标位置。实例:lines(x,y,lwd=1.5,lty=1,col=red)plot(c(-4,4),c(-1,10),col=white)x-seq(-3,3,0.1)y-x2lines(x,y,lwd=1.5,lty=1,col=red)2. 函数ablin

16、e()绘制直线基本格式为:abline(a, b, h, v, reg=, coef=, lty=, lwd=, col=, .)其中,a为截距,b为斜率,即y = a + bx;h为绘制水平线的纵轴值,v为绘制垂直线的横轴值; reg和coef可用来提取线性回归的结果绘制直线,例如z - lm(dist speed, data = cars)plot(cars)abline(reg = z) #同abline(z),也同下句:abline(coef = coef(z)实例:plot(c(0:10), col=white)abline(h=c(3,5)abline(v=c(4,7,9), lt

17、y=2, col=blue)abline(a=2,b=1,lwd=1.5,col=red)3. 函数segment()绘制线段 函数arrows()绘制带箭头的线基本格式为:segments(x0, y0, x1, y1, lty=, lwd=, col=)arrows(x0, y0, x1, y1, angle=, length=, lty=, lwd=, col=)其中,x0, y0为起点坐标,x1, y1为终点的坐标;angle设置箭头与线段之间的夹角;length设置箭头的长度。 实例:plot(c(0:10),col=white)segments(2,1,4,8)arrows(4,0

18、,7,3,angle=30, lty=2, col=red)arrows(4,2,7,5,angle=60, col=green)4. 函数grid()给图形添加网格线基本格式为:grid(nx =, ny=nx, col=lightgray, lty=dotted,lwd=, equilogs=TRUE)其中,nx设置水平网格的数目,ny设置垂直网格的数目;euilogs默认为TRUE,表示当坐标取对数后,仍使用等距的网格线,若为FALSE表示根据对数函数使用不等距网格线。实例:plot(c(0:10),col=white) grid(nx=4,ny=8,lwd=1,lty=2,col=bl

19、ue)5. 函数rug()添加坐标轴须(小竖线),标示出相应坐标轴上的变量数值的具体位置,坐标轴须的分布意味着该变量的分布。基本格式为:rug(x, ticksize=0.03, side=1, lwd=, col=, .)其中,x为向量,给出坐标轴须的位置;ticksize为坐标轴须的长度;side指定坐标轴须位置,1表示x轴,2表示y轴,3表示顶端,4表示右端;实例:set.seed(123)x-rnorm(500)plot(density(x)rug(x,col=blue) 综合绘图的例:attach(mtcars)#mpg归一化smpg=(mpg-min(mpg)/(max(mpg)-

20、min(mpg)plot(wt,smpg,ylab=mpg 归一化)lines(density(wt), col=red) #添加核密度曲线arrows(1.8,0.05, 1.5,0.1, angle=10, cex=0.5)text(2,0.05, 核密度曲线, cex=0.6)#添加回归线abline(lm(smpgwt), lty=2, col=green)arrows(2,0.5,2,0.7, angle=10, cex=0.5)text(2, 0.45, 回归线, cex=0.6)#wt与mpg负线性相关,添加最大最小值线段来表示该关系segments(min(wt),max(sm

21、pg), max(wt), min(smpg), lty=3, col=blue)arrows(3,0.8,2.5,0.76, angle=10, cex=0.5)text(3.3, 0.8, 最大最小值线段, cex=0.6)grid(nx=4,ny=5, lty=2, col=grey)detach(mtcars)用plot函数使用图形参数,也可以分别绘制:plot(density(wt),col=red) #核密度曲线plot(wt,fitted(lm(smpgwt), type=l, lty=2, col=green) #回归线plot(seq(min(wt),max(wt),leng

22、th=100),seq(max(smpg),min(smpg),length=100),type=l,lty=3,col=blue)#最大最小值线六、图例图例一般放在图形的空白区域,用来标识每种图形符号分别代表什么,使用legend函数实现,基本格式为:legend(x, y, legend, fill=NULL, col=, border=black,lty, lwd, pch, bty=o, bg=, ncol=1, horiz=FALSE,title= NULL, xpd, .)其中,x, y设置图例的位置(默认为左上角),也可使用“bottomright”、“bottom”、“bott

23、omleft”、“left”、“topleft”、“top”、“topright”、“right”、“center”;legend为字符向量,表示图例中的文字;fill设置填充颜色;col设置图例中点或线的颜色;border设置边框颜色;horiz设置图例的排列方式,默认FALSE(垂直排列),TRUE为水平排列;ncol设置图例的列数目,若horiz=TRUE,该项无意义;pch设置图例中点的样式,取值025;lty设置图例中线的样式,取值06;bg设置图例的背景颜色;bty设置图例框的样式,默认“o”表示显示边框,“n”表示无边框;xpd设置是否在区域外放置图例,默认FALSE;title

24、设置图例标题。 实例可参考【一、颜色】中的例。 七、坐标轴 设置主坐标轴(x轴,y轴)的范围和刻度标记,以及副坐标轴(右侧纵坐标)的相关属性,使用axis函数实现,基本格式为:axis(side, at=NULL, labels=TRUE, tick=TRUE,pos=, xlim=, ylim=, outer=FALSE, font=, col=, lty=solid, lwd=1, lwd.ticks=, col.ticks=, axes=TRUE,las=, xhat=, yhat=, xaxs=, yaxs=,.)其中,side表示哪个坐标轴,1, 2, 3, 4分别表示下, 左, 上

25、, 右;at设置坐标轴各刻度标记的位置;labels设置坐标值各刻度的名称(与at参数一致);tick设置是否画出坐标轴;pos设置原点坐标;xlim, ylim设置坐标轴范围,c(from, to);outer设置是否将坐标轴绘制在图形区域之外;font设置刻度标记的字体:1正常,2粗体,3斜体,4粗斜体;lty设置坐标轴的样式:0不画线,1实线,2虚线,3点线;lwd设置坐标轴的宽度:1正常,小于1变细,大于1变粗;lwd.ticks和col.ticks分别设置刻度线的宽度和颜色;las设置标签是否平行于坐标轴:0平行于坐标轴,1水平,2垂直于坐标轴,3竖直;axes设置是否显示坐标轴;默

26、认TRUE显示坐标轴;xhat, yhat设置坐标值样式,默认“s”标准样式,“n”隐藏x或y轴;xaxs, yaxs坐标轴长度,默认“r”数据范围再扩大4%,“1”原始数据范围。实例:plot(c(1:12), col=white, xaxt=n, yaxt=n, ann=FALSE) #绘制空白画布,不要坐标轴axis(1,at=1:12,col.axis=red,labels=c(Jan,Feb,Mar,Apr,May,Jun,Jul, Aug,Sep,Oct,Nov,Dec)axis(2,at=seq(1,12,length=10),col.axis=red,labels=1:10,l

27、as=2)axis(3,at=seq(1,12,length=7),col.axis=blue,cex.axis=0.7,tck=-.01,labels=c(Mon,Tues,Wed,Thu,Fri,Sat,Sun) axis(4,at=seq(1,12,length=10),col.axis=blue,cex.axis=0.7,tck=-.01,labels=round(seq(0,1,length=10),1),las=2)八、子图要在一张画布上放置mn个子图,可以用函数par和layout实现。1. 函数par()该函数可以设置大多数绘图全局参数。子图相关的参数:mfrow/mfcol=

28、c(m,n), 把画布分为mn份(m行n列),mfrow表示逐行从左到右作图,mfcol表示逐列从上到下作图;mai/mar=c(b, l, t, r), 设置图形边距,四个数分别为下、左、上、右边距,mai以英寸为单位,mar以行为单位;mgp设置坐标轴位置,3维数值向量,分别为标题、刻度标签、刻度的位置;oma设置外边界宽度,类似mar,默认为c(0, 0, 0, 0)实例:mfrow1=par(mfrow=c(2,3) #将图形按2行3列排列for(i in 1:6) plot(c(1:i), main=paste(Im image: , i)#改变图形边距mar1-par(mar=c(

29、4,5,2,3)for(i in 1:6) plot(c(1:i), main=paste(Im image: , i)par(mar1) #去除par()函数mar参数的设置mar1#改变外边界宽度oma1=par(oma=c(4,5,2,3)for(i in 1:6) plot(c(1:i),main=paste(Im image:,i)par(oma1) #去除par()函数oma参数的设置oma1#改变坐标轴位置mgp1=par(mgp=c(1,2,3)for(i in 1:6) plot(c(1:i),main=paste(Im image:,i)par(mgp1) #去除par()函数mgp参数的设置mgp1par(mfrow1) #去除par()函数mfrow参数的设置mfrow12. 函数layout()该函数可以不均等地分割画布,基本格式为:layout(mat, widths=rep.int(1, ncol(mat), heights=rep.int(1, nrow(mat), respect=FALSE)其中

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1