Description:
默认的图形设置没法满足我们的需要,甚至会碰到各种各样的问题:如坐标轴或者标题出界了,或者图例说明的大小或者位置遮挡住了图形,甚至有时候默认的颜色也不能满足我们的需求。
函数
par()
优化R中默认的图形参数设置,使其能更好地展示自己的数据。
Usage:
par( …, no.readonly = FALSE)
#... 表示所有类似于tag = value形式的参数
# 当参数no.readonly = TRUE时,函数par()就只允许有这一个参数了,并且会返回当前绘图设备中各个参数的参数值
- 每一个图形设备都有自己的绘图参数,如果当前还没有打开绘图设备,那么函数
par()
在进行参数设置之前会自动的打开一个新绘图设备。 - 直接在R编辑器中输入命令
par()
或者par(no.readonly = TRUE)
都可以获取当前的各个绘图参数。
par() #获取当前的各个绘图参数
-
par()
中的参数分为三大类:
一、仅仅用于询问不能被设定的参数, 即readonly
参数:cin
,cra
,csi
,cxy
,dim
。
二、仅能通过par("tag" = value)
设定参数:ask
,fig
,fin
,lheight
,mai
,mar
,mex
,mfcol
,mfrow
,mfg
,new
,oma
,omd
,omi
,pin
,plt
,ps
,pty
,usr
,xlog
,ylog
,ylbias
。
例1:使用参数mfrow
多幅图绘制
n.col <- 2
n.row <- 2
par(mfrow = c(n.col,n.row)) #指定绘图系统的布局
x <- seq(1:10)
y1 <- rnorm(10, mean = 0, sd = 1)
y2 <- rnorm(10, mean = 3, sd = 1)
y3 <- rnorm(10, mean = 7, sd = 1)
y4 <- rnorm(10, mean = 8, sd = 1)
plot(x,y1,type='p', lty=1, main="use mfrow1 ", col = 1 ,cex.main = 1)
plot(x,y2,type='c', lty=2, main="use mfrow2 ", col = 2, cex.main = 1)
plot(x,y3,type='o', lty=3, main="use mfrow3 ", col = 3, cex.main = 1)
plot(x,y4,type='b', lty=4, main="use mfrow4 ", col = 4, cex.main = 1)
三、除了
par()
,也能在其他高级绘图函数中设定的参数,包括的方面有大小、颜色、文字、线条和坐标轴。
高级绘图函数支持参数
① 大小
- cex: 设置文字和符号相对于默认值的大小, 为一个比例数值. 当使用 mfrow 或 mfcol 也会改变该值.
- cex.axis: 在当前 cex 基础上对坐标轴的大小进行调整的比例.
- cex.lab: 在当前 cex 基础上对坐标轴标签的大小进行调整的比例.
- cex.main: 在当前 cex 基础上对主标题的大小进行调整的比例.
- cex.sub: 在当前 cex 基础上对小标题的大小进行调整的比例.
②颜色
- bg: 设定背景的颜色, 如果设置 bg 则 new 会同时被设置为 FALSE, 默认的 bg 为 "white".
- fg: 设置前景的颜色, 默认是 "black", 应用于坐标轴, 标题等选项.
- col: 设置颜色向量.
- col.axis: 设置坐标轴的颜色, 默认是 "black".
- col.lab: 设置坐标轴标签的颜色, 默认是 "black".
- col.main: 设置主标题的颜色, 默认是 "black".
- col.sub: 设置小标题的颜色, 默认是 "black".
例2 : bg参数设置背景
op<-par(bg="light blue") #设置背景
plot(c(-2, 2), c(-2, 2)) #设置绘图区域
rect(-2, -2, 1, 1, col="cornsilk") #绘制矩形
par(op)
③ 文字
- adj: text, mtext and title. 调整文字的调整方式的一个数值, 0 代表向左对齐, 0.5 代表居中 (默认), 1 代表向右对齐, 取值可以在 [0,1] 之间任意.
- crt: 设置单个的字符应该旋转的角度.
- srt: 设置字符串成体的旋转的角度.
- family: 设置字体家族的名称, 默认值是 "", 代表使用设备默认的字体, 有 "serif" "sans" "mono" 等. 可以使用 library(extrafont) 来加载字体, 使用 family 来设置使用地字体.
- font: 指明使用字体的整数, 1 是普通, 2 是粗体, 3 是意大利体, 4 是粗意大利体. 5 是符号.
- font.axis: 坐标轴的字体.
- font.lab: 坐标轴标签的字体.
- font.main: 主标题的字体.
- font.sub: 小标题的字体.
③线条
- lty: line type. 可以是数字或者字符, (0 = "blank", 1 = "solid" (default), 2 = "dashed", 3 = "dotted", 4 = "dotdash", 5 = "longdash", 6 = "twodash")
- lwd: line width. 默认是 1, 设置线宽的放大倍数.
- lmitre: 设置转折什么时候应该从 mitre 转换为 bevel, 值应该大于 1, 默认是 10.
- lend: 线条结束的风格, 可以是数字或字符串. 0, 或者 "round", 线头为圆形; 1, 或者 "butt", 线头为平头; 2, 或者 "square", 线头为正方形, 即增加一个正方形.
- ljoin: 线条转折的风格, 可以是数字或字符串. 0, 或者 "round", 圆形转折; 1, 或者 "mitre", 楔形转折; 2, 或者 "bevel", 平截转折.
④坐标轴
ann: 如果该值为 FALSE, 则高级绘图函数默认不输出坐标轴标题等注释. 默认为 TRUE, 即输出图像注释.
lab: 设置坐标轴注释方式的向量 c(x, y, len), 默认是 c(5, 5, 7). x 指的是在 x 轴的刻度的数量, y 指的是在 y 轴的刻度的数量, len 指的是刻度的长度.
las: 设置坐标轴标签的风格, 在 0, 1, 2, 3 中取值. 0, 默认, 和坐标轴平行; 1, 水平; 2, 和坐标轴垂直; 3, 垂直. crt 和 srt 不会对其产生影响.
tck: 刻度线的相对长度,为一个有符号的比值,表示绘图区域的高度或宽度的比例, 如果是正值, 则在图像区域内画, 当 tck = 1 的时候, 绘制网格; 如果是负值, 则向边界绘制, 默认为 NA 时, 使用 tcl = -0.5.
tcl: 刻度线的相对长度, 为相对于一行高度的比值, 正值表示向绘图中心区域延伸, 负值表示向边缘延伸.
xaxp, yaxp: 设置极值刻度的样式. c(x1, x2, n), c(y1, y2, n). 当 xlog = FALSE 或者 ylog = FALSE 的时候, 相应的 xaxp 和 yaxp 中, x1 x2 和 y1 y2 分别表示 x 轴极值和 y 轴极值, n 表示在极值中间的刻度的个数. xlog = TRUE 和 ylog = TRUE 时, n 的调整会相应改变. 通过 lab 的前两项也可以设置 x 轴和 y 轴 n.xaxs, yaxs: 绘图区域和坐标轴间隔的设置, 值为字符, R 中暂时只支持 "r" 和 "i". "r" (regular) 先把数据的极值向两端延伸 4% 再寻找合适的坐标轴; "i" (internal) 直接在原来的数据范围内寻找合适的位置绘制坐标轴; "s" (standard) 找到合适的地方绘制坐标轴; "e" (extended) 类似于 "s" 不过其保证图像中符号可以正确被绘制; "d" (direct) 后面绘图也用本次坐标轴.
xaxt, yaxt: 坐标轴的型式, 值为字符. "n" 表示不绘制坐标轴, 其他字符均表示绘制坐标轴.
xlog, ylog: 坐标轴取 log 值.
bty: 设定 box 所绘制的方框的类型, plot 等函数也可以设置, 默认为 "o", 设置的型式类似其大写字母性状. "o" 代表四周都有线; "l" 代表左侧和下侧有线; "7" 代表右侧和上侧有线; "c" 代表左侧和上下侧均有线; "u" 代表左右两侧和下侧有线; "]" 代表右侧和上下侧均有线; "n" 不输出方框.
xpd: 剪切图片, 可以参看 clip 函数. 如果 xpd 值为 FALSE, 所有的图形被剪切为绘图区域 (plot); 如果 xpd 值为 TRUE, 所有图形被剪切为图像区域 (figure) (绘图区域和边缘 (margin)); 如果 xpd 值为NA, 则图形被剪切为设备区域, 即图像区域和外边界(outer) (参看下面图像区域图片).
参考文献
R 学习笔记: Par 函数
R图形参数-par() 函数详解