标签:
转自:http://blog.sina.com.cn/s/blog_6caea8bf0100yk4h.html
R有着非常强大的绘图功能,我们可以利用简单的几行代码绘制出各种图形来,但是有 时候默认的图形设置没法满足我们的需要,甚至会碰到各种各样的小问题:如坐标轴或者标题出界了,或者图例说明的大小或者位置遮挡住了图形,甚至有时候默认 的颜色也不能满足我们的需求。如何进行调整呢?这就用到了“强大”的函数par()。我们可以通过设定函数par()的各个参数来调整我们的图形,这篇博 文就是对函数par()的各个参数进行一下总结。
函数par()的使用格式如下:
par(..., no.readonly = FALSE)
其中...表示所有类似于tag=value形式的参数。下面会具体的对这些参数进行描述。当参数no.readonly=TRUE时,函数par()就只允许有这一个参数了,并且会返回当前绘图设备中各个参数的参数值。
每一个图形设备都有自己的绘图参数,如果当前还没有打开绘图设备,那么函数par()在进行参数设置之前会自动的打开一个新绘图设备。
如前面所说,直接在R编辑器中输入命令par()或者par(no.readonly=TRUE)都可以获取当前的各个绘图参数。
函数par()中的参数可以分为三大类:
cra,
csi,
cxy
,
din。
只能通过函数par()进行设置。包括参数:
"ask"
,"fig"
, "fin"
,"lheight"
,"mai"
, "mar"
, "mex"
,
"mfcol"
, "mfrow"
,
"mfg"
,"new"
,"oma"
, "omd"
,
"omi"
,"pin"
, "plt"
, "ps"
,
"pty"
,"usr"
,"xlog"
, "ylog"
当一个参数的值被设定时,默认的会返回设定之前这个参数的值,我们可以通常一些变量把这些值保存下来。执行完操作之后,可以利用这些历史值进行恢复设定(但是不建议这么做,因为可能会引起一些参数值冲突)。如:
> x<-par(bg="red")
> x
$bg
[1] "transparent"> plot(1:10)
> par(x)
> plot(1:100)
接下来就对各个参数的含义进行一下大概的说明,中间会用一些简单的代码作为示例。
adj。该参数值用于设定在text、mtext、title中字符串的对齐方向。0表示左对齐,0.5(默认值)表示居中,而1表示右对齐
(说明一下,区间[0,1]内的任何值都可以作为参数adj的有效值,并且在大部分的图形设备中,介于区间外的值也是有效的)。注意一下,函数text中
的参数adj的值可以以类似于形式adj=c(x,y)调整方向。但是在text中该参数的值影响的是对点的标记,对函数mtext和title来说,参
数adj的值影响的是整个图像或设备区域。
> par(mfrow=c(1,2))
> plot(1:4)
> title("plot(1:4)",adj=0)
> plot(1:4)
> title("plot(1:4)",adj=1)
ann。如果ann=FALSE,那么高水平绘图函数会调用函数plot.default使对坐标轴名称、整体图像名称不做任何注解。默认值为TRUE。
> plot(1:4,ann=FALSE,main=‘plot(1:4,ann=FALSE)‘)#尽管指定了参数main的值,但是图像中仍然没有显示
> plot(1:4,ann=TRUE,main=‘plot(1:4,ann=FALSE)‘)
ask,逻辑值。若为TRUE(且当前的R会话是可交互状态),则在绘制新图像之前会要求用户输入确认信息。同样的,会对扩展包grid和lattice的输出有影响,甚至可能会应用到没有屏幕输出的设备上(但可能会没有效果)。
bg。用于设定绘图区域的背景颜色。当通过函数par()调用时,会同时设定参数new=FALSE。对很多设备来说,该参数的初始值就是该
设备的背景颜色值,其他情况下一般为"white"。需要注意一点的是,一些图形函数例如plot.default和points等也有名为bg的参数,
但是代表的含义是不同的。
bty。该参数值为字符串型,用于限定图形的边框类型。如果bty的值为"o"(默认值)、"l"、"7"、"c"、"u"或者"]"中的任意一个,对应的边框类型就和该字母的形状相似。如果bty的值为"n",表示无边框。
cex。用于表示对默认的绘图文本和符号放大多少倍。需要注意一些绘图函数如plot.default等也有一个相同名字的参数,但是此时表示在函数par()的参数cex的基础上再放大多少倍,此外还有函数points等接受一个数值向量为参数。
cex.axis。表示在当前的cex设定情况下,对坐标轴刻度值字体的放大倍数。
cex.lab。表示在当前的cex设定情况下,对坐标轴名称
字体
的放大倍数。
cex.main。表示在当前的cex设定情况下,对主标题
字体
的放大倍数。
cex.sub。表示在当前的cex设定情况下,对子标题
字体
的放大倍数。
cin。这是一个只读参数,不能进行修改。以形式(width,height)返回字体大小,单位为英寸。这和参数cra的作用一样,只是测量单位不同。
col。用于设定默认的绘图颜色(无可否认这是一个非常特别的参数,以后会总结博文专门讨论如何设定颜色
)。
col.axis。坐标轴刻度值的颜色,默认为"black"。如代码:
>
par(cex.axis=3,col.axis="red")
>
plot(1:4)
col.lab。坐标轴名称的颜色,默认为"black"。
col.main。主标题的颜色,默认为"black"。
col.sub。子标题的颜色,默认为"black"。
cra。参见参数cin的说明。
crt。该参数的值为一个表示度数的数值,用于表示单个字符的旋转度数,最好为90的倍数。和参数srt的不同之处在于后者是对整个字符串进行旋转。
csi。只读参数,返回默认的字符高度,以英寸为单位。
cxy。只读参数,以形式(width,height)返回默认的字符宽度、高度,其中par("cxy")=par("cin")/par("pin")。
din。只读参数,表示绘图设备的尺寸规格,以形式(width,height)返回,单位为英寸。
family。图形中字符的字体类型。最大的长度为200
bytes。默认值为"",表示采用绘图设备的默认字体。
fg。图形中显著位置的颜色(如坐标轴、刻度线,边框等),一般默认为"black"。
fig。一个数值向量,形式为c(x1, x2, y1,
y2),用于设定当前图形在绘图设备中所占区域,注意需要满足x1<x2,y1<y2。如果修改参数fig,会自动打开一个新的绘图设备,而若希望在原来的绘图设备中添加新的图形,需要和参数new=TRUE一起使用。如代码:
>
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)
"dashed"、
"dotted"、
"dotdash"、
"longdash"
或者
"twodash"
)。c(x1, x2, y1, y2)
,设定当前的绘图区域。n=1,在坐标值为10^j(j为整数)处绘制刻度线。
n=2,在坐标值为k*(10^j)处绘制刻度线,其中k为1或者5。
n=3,在坐标值为k*(10^j)处绘制刻度线,其中k为1、2或者5。
"i"
,
"e"
, "s"
,
"d"。一般来说,计算方式是由xlim的数值范围确定的(如果xlim指定了的话)。"r"(regular)首先会对数值范围向两端各延
伸4%,然后在延伸后的数值区间中设置坐标值;"i"(internal)直接在原始的数据范围中设置坐标值;"s"(standard)和"e"
(extended)、;"d"(direct)目前还不支持。
yaxs。类似于xaxs,对坐标轴y的间隔设定方式。
xaxt。用于设定x坐标轴的刻度值类型,为一个字符。"n"表示不绘制刻度值及刻度线;"s"表示绘制,默认值。
yaxt。类似于xaxt。
xlog。一个逻辑值。如果为TRUE,表示对x轴为对数坐标轴,默认值为FALSE。
ylog。类似于xlog。
最后,说明一点:如何设定颜色?R提供了很多和颜色相关的函数供我们调用,如colors()、palette()、rainbow()、rgb()、
gray()、hsv()、hcl()等等。以后也会对“如何设定颜色”这一问题进行整理,并且接下来关于R语言的博文也会重点关注于可视化方面,包括如
何绘制散点图、条形图、热点图、地图等。
标签:
原文地址:http://www.cnblogs.com/day-up/p/4581393.html