第八讲图形函数三种类型的画图命令•高级画图函数:产生一个新的图形,并且可以在图形中显示坐标、标记和标题等元素•低级画图函数:向已经存在的图形中添加自定义的元素,如添加点、线和标记等•交互式的图形函数:允许运用点击设备如鼠标向已存在的图形中添加信息或者从中提取信息高级图形命令例子:•plot(x,y,…)函数x:图形中点的坐标,或者也可以表示一个单独的作图结构、函数或任何一个R语言对象y:着是一个可选的参数,如果‘x’表示x轴坐标的话,则’y’表示图形中点的y轴坐标…:其他图形参数plot(sin,-pi,2*pi)例子:生成三角函数sin()(自变量从-pi到2*pi)的图形-20246-1.0-0.50.00.51.0xsin(x)510152025020406080100120Speed(mph)Stoppingdistance(ft)plot(cars,xlab=Speed(mph),ylab=Stoppingdistance(ft),las=1)例子:对二维数组cars作图windows(5,5)#打开一个新的图形设备plot(rnorm(100),type=b)windows(6,3)#打开一个新的图形设备plot(rnorm(100),type=h)jpeg()#打开一个jpeg图形设备plot(rnorm(10000))pdf()#打开一个pdf图形设备plot(rnorm(10000),type=l)png()#打开一个png图形设备plot(rnorm(100),type=s)postscript()#打开一个文本图形设备plot(rnorm(100),type=s,bg=yellow)dev.list()#显示当前打开的所有图形设备编号dev.cur()#显示当前活动的图形设备dev.set(3)#切换活动图形设备到图形3image(matrix(rnorm(10000),100,100),col=heat.colors(30),axes=FALSE)#在图形设备3中重新画图dev.set(2)#切换活动图形设备到图形2screen(1,FALSE)plot(seq(from=2,to=-2,length=100),type=l)#在图形设备2中添加图形多个图形设备的操作par(bg=“yellow”)#定义背景为黄色split.screen(c(2,1))#将screen分割为2行X1列的多维图形split.screen(c(1,3),screen=2)#将第二个screen分割为1行X3列的多维图形screen(1)#第一个screen预备输出plot(10:1)screen(4)#第四个screen预备输出plot(10:1)close.screen(all=TRUE)#退出split.screen模式split.screen(c(2,1))#将screen分割为2行X1列的多维图形split.screen(c(1,2),2)#将第二个screen分割成1行X3列的多维图形plot(1:10)#screen3作图erase.screen()#清除screen3plot(1:10,ylab=“ylab3”)#重画screen(1)#screen1预备输出plot(1:10)screen(4)#screen4预备输出plot(1:10,ylab=ylab4)screen(1,FALSE)#返回screen1,但不清除plot(10:1,axes=FALSE,lty=2,ylab=“”)#在screen1上再次作图,与原图叠加axis(4)#在右坐标轴上加标记title(“Plot1”)#加标题close.screen(all=TRUE)#退出split.screen模式图形分割绘图参数pch类型图形参数永久性设置par()#在活动设备中返回所有图形参数和它们的值par(c(“col”,”lty”))#用字符向量参数,返回命名的图形参数par(col=4,lty=2)#用命名的参数设置命名的图形参数的值图形参数暂时性设置plot(x,y,pch=“+”)例子x-rnorm(10)y-rnorm(10)plot(x,y)plot(x,y,xlab=Tenrandomvalues,ylab=Tenothervalues,xlim=c(-2,2),ylim=c(-2,2),pch=22,col=red,bg=yellow,bty=l,tcl=0.4,main=HowtocustomizeaplotwithR,las=1,cex=1.5)opar-par()par(bg=lightyellow,col.axis=blue,mar=c(4,4,2.5,0.25))plot(x,y,xlab=Tenrandomvalues,ylab=Tenothervalues,xlim=c(-2,2),ylim=c(-2,2),pch=22,col=red,bg=yellow,bty=l,tcl=-.25,las=1,cex=1.5)title(HowtocustomizeaplotwithR(bis),font.main=3,adj=1)par(opar)常用的高级图形函数add=TRUE强制函数按照低级图形函数的方式操作,将图形置于当前图形上(仅对某些函数有效)。axes=FALSE暂时禁止坐标轴的生成|以便使用axis()函数添加你自己定制的坐标轴。默认情况是axes=TRUE,即包含坐标轴。log=xlog=y“log=xy令x,y或者两者全都对数化。这个参数对许多函数都有效,不过不是全部。type=p绘制单独的点(默认值)type=l绘制线type=b“绘制由线连接的点(both)type=o将点绘在线上type=h绘制从点到零轴的垂线(high-density)type=stype=“S阶梯式图。第一种形式中,点由垂线的顶部定义;第二种形式里用底部定义。type=“n”不绘制。不过坐标轴是绘出的(默认情况)而且要根据数据绘出坐标系统。用来给后续的低级图形函数创建图形作基础。xlab=stringx轴或y轴的标签。使用这些参数来改变默认的标签,通常的默认值是调用高级ylab=string绘图函数时所使用对象的名称。main=string图表标题,位于图形的顶部,大字体显示。sub=string子标题,位于x轴下面,用较小的字体显示。高级图形函数的主要参数#例子:地形图x-10*(1:nrow(volcano));x.at-seq(100,800,by=100)y-10*(1:ncol(volcano));y.at-seq(100,600,by=100)#UsingHeatColors,col=heat.colors(100)image(x,y,volcano,col=heat.colors(30),axes=FALSE)contour(x,y,volcano,levels=seq(90,200,by=5),add=TRUE,col=brown)axis(1,at=x.at)axis(2,at=y.at)box()title(main=MaungaWhauVolcano,sub=col=heat.colors(100),font.main=4)xy95100100100105105110110110110115115115120125130135140145150155155160160165165170170175180180185190100200300400500600700800100200300400500600MaungaWhauVolcanocol=heat.colors(100)contour(x,y,volcano,axes=FALSE)persp(x,y,volcano,col=heat.colors(30),theta=45,phi=15,r=sqrt(3),d=1,axes=FALSE)filled.contour(x,y,volcano,col=heat.colors(30),axes=FALSE)练习8.1:画图read.table(D:/work/averageAEP.csv,header=FALSE,sep=,)-averageAEPaver-as.matrix(averageAEP)dimnames(aver)-NULL(一)把17跟AEP线画在同一张图中(plot())(二)画出AEP的三维图(persp())020040060080010001200-6-4-2024xaver低级图形函数•向已经存在的图形中添加自己定义的信息例子plot(cars,xlab=Speed(mph),ylab=Stoppingdistance(ft),las=1)x-3:25lines(x,(3.9324*x-17.579))text(10,50,expression(distance==3.9324*speed-17.579))交互式的图形函数•使用鼠标从图形中提取信息或添加信息•locator(n=512,type=n)n需要定位的点的最大值type可选项有“n”,“p”,“l”,或“o”identify(x,y)Base:is.thingsBase:recursionGraphics:HersheyGraphics:JapaneseGraphics:graphicsGraphics:imageGraphics:perspGraphics:plotmathLattice:intervalsLattice:labelsLattice:latticeLattice:panelStats:glm.vrStats:lm.glmStats:nlmStats:smooth下节课讲述的demo