1、R绘图功能vR具备卓越的绘图功能,通过参数设置对图形进行精确控制。绘制的图形能满足出版印刷的要求,可以输出Jpg、tiff、eps、emf、pdf、png等各种格式。v通过与GhostScript软件的结合,可以生成600dpi,1200dpi的等各种分辨率和尺寸的图形。v绘图是通过绘图函数结合相应的选项完成的。v绘图函数包括高级绘图函数和低级绘图函数。2高级绘图函数 plot() 绘制散点图等多种图形,根据数据的类,调用相应的函数绘图hist() 频率直方图boxplot() 箱线图stripchart() 点图barplot() 柱状图dotplot() 点图piechart() 饼图ma
2、tplot()数学图形vA.7.1 plot函数 #散点图vplot(x,y,)函数 x:图形中点的坐标,或者也可以表示一个单独的作图结构、函数或任何一个R语言对象 y:着是一个可选的参数,如果x表示x轴坐标的话,则y表示图形中点的y轴坐标 :其他图形参数v练习vgg =rnorm(1000) #产生样本量为1000的正态样本vhist(gg)# 制图vx - c(1,2,2,5)#赋值v y=x/sum(x)#计算x的构成比vnames(y)-c(“tom”,”bill”,”reed”,”jane”)#给每一个赋名vpie(y,col=c(“green”,”red”,”brown”,”whi
3、te”)#制图,col为取色v vx=c(1,6,5,8,3,2,1,6,5,4,8,5,4,7)v y=c(6,5,4,8,7,4,6,5,8,4,7,1,4,5)vplot(x,y)x - 0:64/64y - sin(3*pi*x)plot(x, y, type=l, col=blue, main = points with bg & legend(*, pt.bg)points(x, y, pch=21, bg=pink)legend(.4,1, c(sin(c x),cos(c,x),tan(c,x), pch=21, pt.bg=green, lty=1, col = blue,
4、text.col=red,text.width=0.3,title=Legend, bty=o, x.intersp=0.2,merge=T)vx=rnorm(10)hist(x,breaks=5,freq=FALSE)v bins=seq(-3.5,3.5,by=0.5) hist(x,breaks=bins)8图 散点图与箱线图9低级绘图函数lines()添加线curve()添加曲线abline()添加给定斜率的线points()添加点segments()折线arrows()箭头axis()坐标轴box()外框title()标题text()文字mtext()图边文字10绘图参数参数用在函数
5、内部,在没有设定值时使用默认值。font = 字体,lty = 线类型线类型,lwd = 线宽度线宽度,pch = 点的类型点的类型,xlab = 横坐标横坐标,ylab = 纵坐标纵坐标,xlim = 横坐标范围横坐标范围,ylim = 纵坐标范围纵坐标范围,也可以对整个要绘制图形的各种参数进行设定参见 par()举例:绘图v x=seq(0,10,.5)v y=2*sin(0.2*x)+log(x2+3*x+1)v plot(x,y,xlab=“X is across”, ylab=“Y is Up”)v points(x0.5,y,pch=3)v vpoints(x,8-0.7*y,pc
6、h=“m”)#use a “m” symbolv points(rev(x),y,pch=5)v lines(x,y,lwd=2)v title(“Titles are Tops”) #见下图分步绘图 1.打开绘图窗口,不绘制任何对象plot(x, y, type=n, xlab=, ylab=, axes=F) 2.添加坐标点 points(x,y) 3.添加坐标轴axis(1); axis(at=seq(0.2,1.8,0.2), side=2)4.补齐散点图的边框 box() 5.添加标题、副标题、横轴说明、纵轴说明title(main=Main title, sub=subtitle,
7、 xlab=x-label, ylab=y-label)15图 分步绘图12345616举例:绘图生成0到2之间的50个随机数,分别命名为x,yx - runif(50,0,2)y - runif(50,0,2)绘图:将主标题命名为“散点图”, 横轴命名为”横坐标”, 纵轴命名为“纵坐标”plot(x, y, main=散点图散点图, xlab=横坐标横坐标, ylab=纵坐标纵坐标)text(0.6,0.6,text at (0.6,0.6)abline(h=.6,v=.6)17图 绘图举例vA.7.2 多图显示多图显示v par() vpar(mfrow=c(2,2)v x=rnorm(1
8、00,2,3)v y=7:1v pie(y,col=rainbow(7),radius=1)v hist(x,col=3)v boxplot(x)v barplot(c(1,2,3)#如下图如下图20在原有图形上添加元素举例:举例:x - rnorm(100) # 生成随机数生成随机数hist(x,freq=F) # 绘制直方图绘制直方图curve(dnorm(x),add=T) # 添加曲线添加曲线h - hist(x, plot=F) # 绘制直方图绘制直方图ylim - range(0, h$density, dnorm(0) #设定纵轴的取值范围设定纵轴的取值范围hist(x, fre
9、q=F, ylim=ylim) #绘制直方图绘制直方图curve(dnorm(x),add=T,col=red) #添加曲线添加曲线21图27 在原有直方图上添加曲线QQ图:鉴别样本的分布是否近似于某种类型的分布x=c(75.0,64.0,47.4,66.9,62.2,62.2,58.7,63.5,66.6,64.0,57.0,69.0,56.9,50.0,72.0) vqqnorm(x,pch=21,col=red,bg=yellow,font=2,cex.lab=1.4);vqqline(x,lwd=2,col=blue)v vx=rnorm(200,2,2) qqnorm(x,pch=2
10、1,col=red,bg=yellow,font=2,vcex.lab=1.4);vqqline(x,lwd=2,col=blue)经验分布图vx=c(40.5,20.8,16.9,20.2,17.3,32.4, 34.5,43.6,19.5,26.4,41.4) vplot(ecdf(x),verticals=T,col=2, main=Empirical distribution function x, font=2,cex.lab=1.5) vlines(14:46, pnorm(14:46,mean(x),sd(x), lwd=2,col=blue)vA.8 R帮助和包vA.8.1 R帮助v help(abs)#绝对值函数v help(np) v?npvvA.8.2 R包v install.packages(“np”)#安装非参包vlibrary(np)#使用非参包27输入历史 historyv输入的命令,在R中作为历史history保存,可输入函数vhistory() # 查看输入历史vhistory(Inf) # 查看打开R之后所有的输入v可用向上或向下的箭头切换输入的行。