graphics | R语言的基础绘图系统(二)—— 绘图参数及par函数

前篇(graphics | 基础绘图系统(一)——主函数plot及其参数)介绍了基础系统的绘图主函数plot()及其参数。实际上,plot()函数的参数主要由par()提供。不同于plot()函数,par()函数的参数除个别外一旦设定,除非再次更改或重启R,否则就会对后续所有的绘图命令起作用。在设置参数之前,可以使用以下代码保存绘图系统的默认参数:

# 储存当前参数
opar <- par(no.readonly = TRUE)

设置参数前可以先查看当前的参数值:

par("usr")
par(c("usr", "fin"))

大部分参数既可以在par()中设置,又可以在plot()中设置,区别在于前者设置的参数对全局起作用,后者设置的参数只对本条命令起作用,相当于plot()中的...参数,个别参数在两种情况下面对的对象也不同。还有,以下参数只能在par()中使用:

  • ask
  • fig, fin
  • lheight
  • mai, mar, mex, mfcol, mfrow, mfg
  • new
  • oma, omd, omi
  • pin, plt, ps, pty
  • usr
  • xlog, ylog
  • ylbias

2 要素美化参数

颜色参数

  • col:图形要素的颜色;
  • bg:背景色;
  • fg:前景色。
  • bg在par()设置时表示整个绘图页面的背景颜色,在plot()设置时只表示绘图图形的背景色;
  • fg表示除绘图图形要素以外的几何图形的颜色,如边框、坐标轴刻度线。

点和线要素参数

  • cex:控制点状要素相对默认大小的倍数;
  • pch:控制点状要素的形状,系统默认提供26种类型,分别以0-25之间的整数表示,也可以自定义字符;
  • lwd:控制线状要素相对默认粗细的倍数;
  • lty:控制线状要素的类型,系统默认提供7种类型,分别以0-6之间的整数表示;
par(mex = 0.5, mar = c(0, 0.5, 0, 0))
x <- c(rep(1:5, 5), 1)
y <- c(rep(5:1, each = 5), 0) + 1
plot(x,y, pch = 0:25, xlim = c(-1, 6), ylim = c(0, 7),
     col = "red", bg = "blue", cex = 3,
     axes = F, ann = F)
box("figure")
text(x+0.5, y, labels = 0:25)
segments(0.5, 6.5:0.5, 5.5, 6.5:0.5,
         lty = 0:6, lwd = 2, col = "grey")
text(-0.9, 6.5:0.5, adj = 0, 
     labels = c("0 = blank", "1 = solid", "2 = dashed", "3 = dotted",
                "4 = dotdash", "5 = longdash", "6 = twodash"))

在这里插入图片描述

上图展示了参数cex和lty各种取值的实际样式:

  • cex取值在21-25之间时可以分别使用col和bg参数分别设置点要素的边框和内部的颜色;
  • cex取16和19的区别是,后者可以使用lwd调整边界线粗细;
  • cex取19和20的区别是,后者是前者的2/3大小;
  • lty为0时隐藏线条。
  • lend:控制线状要素端点的形状,整型参数。0表示圆角,1表示短直角,2表示长直角;
  • ljoin:控制线条相交时的形状;
  • lmitre:控制线条斜交时的过渡特征。

文本参数

  • family:设置字体;
  • font:整型参数,设置字体形态。1代表默认状态,2表示黑体,3表示斜体,4表示黑色斜体;
  • lheigh:数值型参数,文本行高的倍数,仅在par()函数中生效;
  • ps:整型参数,控制文本尺寸但不改变行高。

坐标轴刻度

  • xlog、ylog:逻辑型参数,分别控制x轴和y轴刻度的对数化,默认为FASL,只能在par()函数内生效;
  • xaxp、yaxp:分别控制x轴和y轴刻度线标记的起始位置和间隔数量,形式为c(x1, x2, n)或c(y1, y2, n),依次表示刻度线起、始位置和间隔个数;
  • lab:控制坐标轴刻度个数,形式为c(x, y, len),默认值为c(5,5,7),依次表示x和y轴刻度个数,len为无效参数。

二级命名参数

构成规则:主参数+要素关键字

  • 关键字及含义:axis——坐标刻度值,lab——坐标轴标签,main——图形标题,sub——图形副标题;
  • 颜色:col.axis、col.lab、col.main、col.sub;
  • 大小:cex.axis、cex.lab、cex.main、cex.sub;
  • 字体:font.axis、font.lab、font.main、font.sub。

显示与对齐

以下参数控制文本的显示和对齐:

  • xpd:逻辑型参数或NA,FALSE表示只显示plot region内的文本,TRUE表示只显示figure region内的文本,NA表示显示整个device region内的文本;
  • adj:数值型参数,控制text()mtext()title()函数呈现的文本对齐方式,数值介于0-1之间,其中0表示左对齐,1表示右对齐,0.5表示居中;
  • crt:控制文本旋转幅度,单位为弧度,针对单个文本;
  • srt:控制text()函数中文本的旋转幅度,单位为弧度,针对整行文本。

以下参数控制坐标轴刻度的显示和对齐:

  • ann:逻辑型参数,控制图像标题和坐标轴标签的显示,默认为TRUE;
  • xaxt、yaxt:分别控制x轴和y轴刻度线和刻度值的显示。n表示不显示刻度线和刻度值,s是默认值表示显示,l和t等价于s;
  • xaxs、yaxs:分别控制x轴和y轴刻度线标记方式。r为默认值,会分别在两端留出坐标轴长度4%的空白,再标记刻度线,i表示不留出额外空白;
  • tck、tcl:数值型参数,控制刻度线的长度;大于0时刻度线向内,小于0时刻度线向外;tcl默认值为-0.5,tck默认值为NA,且最大值是1,相当于绘制网格;
  • las:整型参数,控制刻度文本的方向;0表示平行于坐标轴,1表示始终平行于x轴,2表示垂直于坐标轴,3表示始终垂直于x轴。

以下参数控制边框的显示:

  • bty:控制plot region边框的显示;默认值为o,即四周都有边框,l、7、c、u、]分别根据这些字符的形状显示边框,如u表示上方开口,n表示四周都没有边框。

3 布局参数

par(oma = c(2, 2.5, 2, 2.5), mar = c(3, 2, 2, 0.95),
    fig = c(0.1, 0.95, 0.1, 0.9), xpd = NA)
plot(sin, 0, 2*pi, type = "l", frame.plot = F, ann = F)
box("plot", col = "red")
box("figure", col = "green")
box("inner", col = "blue")
box("outer", col = "black")
text(pi, 0, labels = "plot region")
text(pi, 1.25, labels = "figure region")
text(pi, 1.65, labels = "display region")
text(pi, 2, labels = "device region")
text(5.5, 1, labels = "plot side", col = "red")
text(5.5, 1.35, labels = "figure margin", col = "red")
text(5.5, 1.75, labels = "inner margin", col = "red")
text(5.5, 2.1, labels = "outer margin", col = "red")

在这里插入图片描述

上图展示了图形中各个区域和边框的名称:

  • 默认状态下,display region和device region边框重合,figure region又与inner region边框重合,坐标轴线与plot region的边框重合。

尺寸参数

以下参数用于读取文本尺寸,均为只读参数:

  • cin、cra:读取当前字体大小,形式为(width, height),前者单位为英寸,后者单位为像素;
  • csi:读取当前字体的高度,单位英寸,相当于参数cin的第2个元素;
  • cxy:读取文本大小和plot region大小的比例,相当于cin与pin之比。
  • 只读参数随着其他参数的设置或者拖拽RStudio界面自动改变,不能主动设置;
  • 使用par(“参数名”)读取参数大小。

以下参数用于读取或设置各区域尺寸:

  • din:只读参数,读取device region的尺寸,单位英寸,形式为(width, height);
  • fin:控制figure region的尺寸,单位英寸,形式为(width, height);
  • pin:控制plot region的尺寸,单位英寸,形式为(width, height)。

以下参数用于设置各区域相对位置:

  • omd:形式为c(x1, x2, y1, y2),控制display region在device region的相对位置,各元素使用占比表示,如x1 = 0.1表示display region的左侧边框在device region边框长度的1/10处;
  • fig:形式为c(x1, x2, y1, y2),控制figure region在display region的相对位置,各元素使用占比表示;
  • plt:形式为c(x1, x2, y1, y2),控制plot region在figure region的相对位置,各元素使用占比表示;
  • usr:控制plot region的坐标范围,形式为c(x1, x2, y1, y2);若xlog或ylog为TRUE,则实际显示范围为10^usr;该参数只能在par()函数内设置。

边距参数

  • mgp:设置文本与plot side的距离,默认值为c(3,1,0),依次表示图形标题、坐标轴标签、坐标轴轴线距边框的距离;
  • ylbias:数值型参数,控制axis()mtext()函数提供的文本与相应边框的距离;
  • mex:文本行高的倍数,默认为1,常作为某些边距参数的单位;
  • oma、omi:控制inner margin与outer margin的距离,形式为c(bottom, left, top, right),依次表示下、左、上、右方向的距离;前者单位是mex,后者单位是英寸;
  • mar、mai:控制plot side与figure margin的距离,形式为c(bottom, left, top, right),mar单位是mex,默认值为c(5,4,4,2) + 0.1,mai单位是英寸。

分图参数

  • page:只读参数,逻辑型参数,检查下条绘图命令是否新建绘图页面;
  • new:逻辑型参数,默认为FASLE,若为TRUE,则下条绘图命令在原页面添加图形,不再新建绘图页面;该参数只能在par()函数内设置,且只起一次作用,多次原页面添加图形也需要多次设置该参数;
  • mfrow、mfcol:控制一个绘图页面子图的排列情况,形式为c(nr, nc),如c(3,2)表示3行2列;前者表示先横向排列,后者表示先纵向排列;该参数只能在par()函数内生效;
  • mfg:在mfrow或mfcol设置的情况下,可以直接指定本条命令产生的子图在页面的位置。

4 其他参数

  • ask:逻辑型参数;对于一次运行后会绘制多个图形的情况,若ask参数设置为TRUE,每次绘图后需要人工确认才会绘制下一个图形。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值