R语言笔记 R中设置图形参数--函数par()详解

时间:2016-04-06 19:04:38   收藏:0   阅读:5099

   R有着非常强大的绘图功能,我们可以利用简单的几行代码绘制出各种图形来,但是有时候默认的图形设置没法满足我们的需要,甚至会碰到各种各样的小问题:如坐标轴或者标题出界了,或者图例说明的大小或者位置遮挡住了图形,甚至有时候默认的颜色也不能满足我们的需求。如何进行调整呢?这就用到了“强大”的函数par()。我们可以通过设定函数par()的各个参数来调整我们的图形,这篇博文就是对函数par()的各个参数进行一下总结。

    函数par()的使用格式如下:

      par(..., no.readonly = FALSE)

    其中...表示所有类似于tag=value形式的参数。下面会具体的对这些参数进行描述。当参数no.readonly=TRUE时,函数par()就只允许有这一个参数了,并且会返回当前绘图设备中各个参数的参数值。

    每一个图形设备都有自己的绘图参数,如果当前还没有打开绘图设备,那么函数par()在进行参数设置之前会自动的打开一个新绘图设备。
   如前面所说,直接在R编辑器中输入命令par()或者par(no.readonly=TRUE)都可以获取当前的各个绘图参数。
    函数par()中的参数可以分为三大类:

  1. 只能读取,不能进行设置。包括参数cin,cra,csi,cxy, din。

  2. 只能通过函数par()进行设置。包括参数:


剩下的参数除了函数par()外,还可以通过各种高级绘图函数进行设置,如函数plot,points,lines,abline,title,text,axis,image,box,contour,rect,arrows等。

    当一个参数的值被设定时,默认的会返回设定之前这个参数的值,我们可以通常一些变量把这些值保存下来。执行完操作之后,可以利用这些历史值进行恢复设定(但是不建议这么做,因为可能会引起一些参数值冲突)。如:

> x<-par(bg="red")
> x
$bg
[1] "transparent"

> plot(1:10)
> par(x)
> plot(1:100)

    接下来就对各个参数的含义进行一下大概的说明,中间会用一些简单的代码作为示例。

> plot(1:4,ann=FALSE,main=‘plot(1:4,ann=FALSE)‘)#尽管指定了参数main的值,但是图像中仍然没有显示
> plot(1:4,ann=TRUE,main=‘plot(1:4,ann=FALSE)‘)

> par(cex.axis=3,col.axis="red")

> plot(1:4)

> par(fig=c(0,0.5,0,0.5))
> plot(1:3)

> par(fig=c(0.5,1,0.5,1))
> plot(1:3)

> par(fig=c(0,0.5,0,0.5),new=TRUE)

> plot(1:3)

> plot(1:8,type="n",ylim=c(1,6))
> x0<-c(1,2,3,5,6)
> y0<-rep(1,5)
> x1<-x0
> y1<-rep(6,5)
> segments(x0,y0,x1,y1)
> x0<-rep(0,4)
> y0<-seq(1.3,4.3,1)
> x1<-c(1,6,3,1)
> y1<-y0
#默认情形
> segments(x0,y0,x1,y0,lwd=10,col="red")
#修改参数lend=1
> y0<-seq(1.6,4.6,1)
> y1<-y0
> segments(x0,y0,x1,y0,lwd=10,col="green",lend=1)
#修改参数lend=2
> y0<-seq(1.9,4.9,1)
> y1<-y0
> x0<-x1
> x1<-c(2,8,5,3)
> segments(x0,y0,x1,y0,lwd=10,col="blue",lend=2)

n=1,在坐标值为10^j(j为整数)处绘制刻度线。

n=2,在坐标值为k*(10^j)处绘制刻度线,其中k为1或者5。

n=3,在坐标值为k*(10^j)处绘制刻度线,其中k为1、2或者5。

    最后,说明一点:如何设定颜色?R提供了很多和颜色相关的函数供我们调用,如colors()、palette()、rainbow()、rgb()、gray()、hsv()、hcl()等等。以后也会对“如何设定颜色”这一问题进行整理,并且接下来关于R语言的博文也会重点关注于可视化方面,包括如何绘制散点图、条形图、热点图、地图等。


评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!