R语言入门 图形

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验目的实验内容学习如何应用R软件解决绘图问题1、绘图方法2、应用实例3、实验作业第六讲图形常用图形•S-PLUS有很强的图形功能,它可以用简单的函数调用迅速作出数据的各种图形,当你熟悉了S图形的技术之后也可以指定许多图形选项按自己的要求定制图形。它的另一个特色是同一个绘图函数对不同的数据对象可以作出不同的图形。例如,读入cl数据框:•c1=read.table(E://c1.txt,header=TRUE,sep=)names(cl);attach(cl);plot(Height)或plot(cl$Height)绘制身高的散点图(纵轴为身高值,横轴为下标)。•最常用的绘图函数为plot(),用plot()作两个变量x与y的散点图,使用如下例的方法:•plot(Height,Weight,main=体重对身高的回归,+xlab=身高,ylab=体重)•为了绘制连线图,只要在plot()函数中加type=“l”选项,plot((1:50)/50,log((1:50)/50),type=l)•可以绘制变量的茎叶图,Usage:stem(x,scale=1,width=80,atom=1e-08)Arguments:x:anumericvector.scale:Thiscontrolstheplotlength.width:Thedesiredwidthofplot.atom:atolerance.References:Becker,R.A.,Chambers,J.M.andWilks,A.R.(1988)_TheNewSLanguage_.Wadsworth&Brooks/Cole.Examples:stem(islands)stem(log10(islands))stem(cl$Weight,scale=1,width=80,atom=1e-08)Thedecimalpointis1digit(s)totherightofthe|4|16|78|344550810|033223312|8314|0sort(Weight)[1]50.577.083.084.084.084.585.090.098.099.5102.5102.5[13]112.0112.0112.5112.5128.0133.0150.0stem(cl$Weight,scale=2,width=80,atom=1e-08)Thedecimalpointis1digit(s)totherightofthe|5|16|7|78|344559|0810|03311|223312|813|3sort(Weight)[1]50.577.083.084.084.084.585.090.098.099.5102.5102.5[13]112.0112.0112.5112.5128.0133.0150.0绘制一个变量的盒形图,如:boxplot(cl$Weight)可以绘制几个变量并排的盒形图,boxplot(cl$Height~cl$Sex,data=cl)boxplot(cl$Height~cl$Sex,data=cl,col=lightgray);用hist()函数可以绘制直方图。例如:hist(Weight)用qqnorm()函数绘制正态概率图,如:qqnorm(Weight)高级图形函数•S的图形函数分为两类:高级图形函数――直接绘制图形并可自动生成坐标轴等附属图形元素;低级图形函数――可以修改已有的图形或者为绘图规定一些选择项。•高级图形函数总是开始一个新图。下面我们介绍常用的高级图形函数,以及用来修饰这些高级图形函数的常用可选参数。•最常用的是plot()函数。比如,•plot(x,y)(其中x,y是向量)对两个变量画散点图。•用plot(z)(其中z是一个定义了x变量和y变量的列表,或者一个两列的矩阵)也可以达到同样目的。•如果x是一个时间序列对象(时间序列对象用ts()函数生成),plot(x)绘制时间序列曲线图。•如果x是一个普通向量,则绘制x的值对其下标的散点图。•如果x是复数向量则绘制虚部对实部的散点图。•如果f是一个因子,则plot(f)绘制f的条形图(每个因子水平的个数)。•如果f是因子,y是同长度的数值向量,则plot(f,y)对f的每一因子水平绘制y中相应数值的盒形图。•如果d是一个数据框,则plot(d)对d的每两个变量之间作图(散点图等)。load(F:/R/cl.RData)plot(cl$Sex)•如果X是一个数值型矩阵或数据框,用pairs(X)可以绘制每两列之间的散点图矩阵。这在变量个数不太多时可以同时看到多个变量的两两关系,变量太多时则图示过小而看不清。•协同图(coplot)是一种多变量的探索性分析图形。其形式为coplot(y~x|z),其中x和y是数值型向量,z是同长度的因子。对z的每一水平,绘制相应组的x和y的散点图。如:•attach(cl)•coplot(Weight~Height|Sex)•如果z是一个数值型变量,则coplot()先对z的取值分组,然后对z的每一组取值分别绘图。•甚至可以用如coplot(y~x|x1+x2)表示对x1和x2的每一水平组合绘图。•coplot()和pairs()函数缺省绘制散点图,但可以用一个panel=参数指定其它的低级绘图函数,如lines,panel.smooth等。•tsplot(x)绘制时间序列曲线图。多个参数时tsplot(x1,x2,...)表示绘制多条曲线,自动统一曲线取值范围。如果参数非时间序列对象则以下标1,2,3等为横坐标绘图。•qqnorm(x),qqline(x),qqplot(x,y)作分位数-分位数图。qqnorm(x)对向量x作正态概率(纵轴为次序统计量值,横轴为对应该次序统计量的标准正态分布分位数值)。qqline(x)除作qqnorm(x)图之外还画一条拟合曲线。qqplot(x,y)把x和y的次序统计量分别画在x轴和y轴以比较两个变量的分布。•hist(x)作向量x的直方图。缺省时自动确定分组,也可以用nclass=参数指定分组个数,或者用breaks=参数指定一个分组点向量。如果指定了prob=T则纵轴显示密度估计。•S也可以作三维图或等值线图,函数为persp()和contour()。高级图形函数的常用选项•高级图形函数有一些共同的选项,作为函数的可选参数(自变量)。例如:•plot(x)•plot(x,main=Graphofx)•其中的main就是一个可选参数,用来指定图形的标题。没有此选项时图形就没有标题。这样的选项还有add=T使函数象低级图形函数那样不是开始一个新图形而是在原图基础上添加。axes=F暂不画坐标轴,随后可以用axis()函数更精确地规定坐标轴的画法。缺省值是axes=T,即有坐标轴。log=xlog=ylog=xy把x轴,y轴或两个坐标轴用对数刻度绘制。type=•type=p•type=l•type=b•type=o•type=h•type=s•type=S•type=n规定绘图方式:•绘点•画线•绘点并在中间用线连接•绘点并画线穿过各点•从点到横轴画垂线•阶梯函数;左连续•阶梯函数;右连续•不画任何点、线,但仍画坐标轴并建立坐标系,适用于后面用低级图形函数作图。xlab=字符串“ylab=字符串main=字符串sub=字符串定义x轴和y轴的标签,缺省时使用对象名。图形的标题;图形的小标题,用较小字体画在x轴下方。低级图形函数•高级图形函数可以迅速简便地绘制常见类型的图形,但是,某些情况下你可能希望绘制一些有特殊要求的图形。比如,你希望坐标轴按照自己的设计绘制,在已有的图上增加另一组数据,在图中加入一行文本注释,绘出多个曲线代表的数据的标签,等等。低级图形函数让你在已有的图的基础上进行添加。•低级图形函数一般需要指定位置信息,其中的坐标指的是所谓用户坐标,即前面的高级图形函数所建立的坐标系中的坐标。坐标可以用两个向量x和y给出,也可以由一个两列的矩阵给出。如果交互作图可以用下面介绍的locator()函数来交互地从图形中直接输入坐标位置。•常用的低级图形函数罗列如下:points(x,y)lines(x,y)在当前图形上叠加一组点或线。可以使用plot()的type=参数来指定绘制方法,缺省时points()画点,lines()画线。text(x,y,labels,...)在由坐标x和y给出的位置标出由labels指定的字符串。labels可以是数值型或字符型的向量,labels[i]在x[i],y[i]处标出。abline(a,b)abline(h=y)abline(v=x)abline(lm.obj)在当前图形上画一条直线。两个参数a,b分布给出截距和斜率。指定h=参数时绘制水平线,指定v=参数时绘制垂直线。以一个最小二乘拟合结果lm.obj作为参数时由lm.obj的$coefficients成员给出直线的截距和斜率。polygon(x,y,...)以由向量x给出的横坐标和向量y给出的纵坐标为顶点绘制多边形。可以用col=参数指定一个颜色填充多边形内部。•plot(c1$Height[c1$Sex=='男'],c1$Weight[c1$Sex=='男'],col='Blue')•points(c1$Height[c1$Sex=='女'],c1$Weight[c1$Sex=='女'],col='Red')legend(x,y,legend,...)legend(,angle=v)legend(,density=v)legend(,fill=v)legend(,col=v)legend(,lty=v)legend(,pch=v)legend(,marks=v)legend函数用来在当前图形的指定坐标位置绘制图例。图例的说明文字由向量legend提供。至少下面的v值要给出以确定要对什么图例进行说明,v是长度与legend相同的向量。angle参数指定几种阴影斜角。density参数指定几种阴影密度。fill参数指定几种填充颜色。col参数指定几种颜色。lty参数指定几种线型。pch参数指定几种散点符号,为字符型向量。marks参数也指定几种散点符号,但使用散点符号数值代号,为数值型向量。title(main,sub)绘制由main指定的标题和由sub指定的小标题。axis(side,...)绘制一条坐标轴。这之前的绘图函数必须已经用axes=F选项抑制了自动的坐标轴。参数side指定在哪一边绘制坐标轴,取值为1到4,1为下边,然后逆时针数。可以用at=参数指定刻度位置,用labels参数指定刻度处的标签。交互图形函数•S的低级图形函数可以在已有图形的基础上添加新内容,另外,S还提供了两个函数locator和identify可以让用户通过在图中用鼠标点击来确定位置。•函数locator(n,type)运行时会停下来等待用户在图中点击,然后返回图形中鼠标点击的位置的坐标。等待点击时用鼠标中键点击可以选择停止等待,立即返回。参数n指定点击多少次后自动停止,缺省为500次;参数type如果使用则可指定绘点类型,与plot()函数中的type参数用法相同,在鼠标点击处绘点(线、垂线,等等)。locator()的返回值是一个列表,有两个变量(元素)x和y,分别保存点击位置的横坐标和纵坐标。•例如,为了在已经绘制的曲线图中找一个空地方标上一行文本,只要使用如下程序:text(locator(1),Normaldensity,adj=0)•text()函数的adj参数用一个数字表示文本串相对于给定的坐标的画法,adj=0表示给定坐标为文本串左侧的坐标,adj=1表示给定坐标为文本串右侧的坐标,adj=0.5表示给定坐标为文本串中间的坐标。•函数identify(x,y,labels)在运行时也会停下来等待用户点击,直到按了鼠标中键,任何返回用户在图形中用鼠标点击的点的序号,点击时对

1 / 56
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功