par
位于 graphics
包(package)。 说明
par
可用于设置或查询图形参数。可以通过将参数指定为 tag = value
形式的 par
的参数来设置参数,或者将它们作为标记值列表传递。
用法
par(..., no.readonly = FALSE)
<highlevel plot> (...., <tag> = <value>)
参数
... |
|
no.readonly |
逻辑性;如果 |
细节
每个设备都有自己的一组图形参数。如果当前设备为空设备,par
将在查询/设置参数之前打开一个新设备。 (options("device")
控制什么设备。)
通过将参数名称的一个或多个字符向量提供给 par
来查询参数。
par()
(无参数)或par(no.readonly = TRUE)
用于获取所有图形参数(作为命名列表)。它们的名称当前取自未导出的变量 graphics:::.Pars
。
R.O.表示只读参数:这些只能在查询中使用,不能设置。 ("cin"
,"cra"
,"csi"
,"cxy"
,"din"
和"page"
始终是只读的。)
有几个参数只能通过调用 par()
来设置:
-
"ask"
, -
"fig"
,"fin"
, -
"lheight"
, -
"mai"
、"mar"
、"mex"
、"mfcol"
、"mfrow"
、"mfg"
、 -
"new"
, -
"oma"
,"omd"
,"omi"
, -
"pin"
、"plt"
、"ps"
、"pty"
、 -
"usr"
, -
"xlog"
,"ylog"
, -
"ylbias"
其余参数也可以设置为参数(通常通过...
) 到高级绘图函数,例如plot.default
,plot.window
,points
,lines
,abline
,axis
,title
,text
,mtext
,segments
,symbols
,arrows
,polygon
,rect
,box
,contour
,filled.contour
和image
。此类设置仅在函数执行期间有效。不过请看评论bg
,cex
,col
,lty
,lwd
和pch
它可以被视为某些绘图函数的参数,而不是图形参数。
“字符大小”的含义没有明确定义:这是为考虑pointsize
的设备设置的,但通常不是实际使用的字体系列。在内部,相应的部分( cra
、 cin
、 cxy
和 csi
)仅用于设置用于将 mar
和 oma
转换为物理边距的行间距。 (text
和 strheight
中的多行字符串使用相同的行间距乘以 lheight
。)
请注意,图形参数是建议:绘图函数和设备不需要使用它们(对于例如 plot
的非默认方法尤其如此)。
值
设置参数后,它们以前的值将在不可见的命名列表中返回。这样的列表可以作为参数传递给par
以恢复参数值。使用 par(no.readonly
= TRUE)
获取可恢复参数的完整列表。然而,恢复所有这些并不明智:请参阅“注意”部分。
当仅查询一个参数时,该参数的值将作为(原子)向量返回。当查询两个或多个参数时,它们的值将在列表中返回,列表名称给出参数。
请注意不一致之处:设置一个参数会返回一个列表,但查询一个参数会返回一个向量。
图形参数
adj
-
adj
的值确定文本字符串在text
、mtext
和title
中对齐的方式。值0
生成左对齐文本、0.5
(默认)居中文本和1
右对齐文本。 ( 中的任何值都是允许的,并且在大多数设备上,超出该间隔的值也将起作用。)请注意,
text
的adj
参数还允许adj = c(x, y)
在 x 和 y 方向上进行不同的调整。请注意,对于text
,它指的是围绕点的文本定位,而对于mtext
和title
,它控制绘图或设备区域内的放置。 ann
-
如果设置为
FALSE
,则调用plot.default
的高级绘图函数不会使用轴标题和整体标题来注释它们生成的绘图。默认是做注释。 ask
-
合乎逻辑的。如果
TRUE
(以及R会话是交互式的),在绘制新图形之前,系统会要求用户输入。由于这适用于设备,它也会影响包的输出grid
和lattice
。它甚至可以在非屏幕设备上进行设置,但可能不起作用。这并不是真正的图形参数,并且不推荐使用它,而是使用
devAskNewPage
。 bg
-
用于设备区域背景的颜色。当从
par()
调用时,它还会设置new = FALSE
。有关合适的值,请参阅“颜色规格”部分。对于许多设备,初始值是从设备的bg
参数设置的,对于其余设备,它通常是"white"
。请注意,某些图形函数(例如
plot.default
和points
)具有具有不同含义的该名称的参数。 bty
-
确定绘制绘图的
box
类型的字符串。如果bty
是"o"
(默认值)、"l"
、"7"
、"c"
、"u"
或"]"
之一,则生成的框类似于相应的大写字母。"n"
值会抑制该框。 cex
-
给出绘图文本和符号相对于默认值应放大的数值。当设备打开时,它以
1
开头,并在布局更改时重置,例如通过设置mfrow
。请注意,某些图形函数(例如
plot.default
)具有该名称的参数,该参数会乘以该图形参数,而某些函数(例如points
和text
)接受回收的值向量。 cex.axis
-
用于轴注释相对于
cex
当前设置的放大倍数。 cex.lab
-
用于 x 和 y 标签相对于
cex
当前设置的放大倍数。 cex.main
-
用于主标题相对于
cex
当前设置的放大倍数。 cex.sub
-
用于字幕相对于
cex
当前设置的放大倍数。 cin
-
R.O.;字符大小
(width, height)
以英寸来算。这些测量值与cra
,用不同的单位表示。 col
-
默认绘图颜色的规范。请参阅“颜色规格”部分。
col.axis
-
用于轴注释的颜色。默认为
"black"
。 col.lab
-
用于 x 和 y 标签的颜色。默认为
"black"
。 col.main
-
用于绘图主标题的颜色。默认为
"black"
。 col.sub
-
用于绘图副标题的颜色。默认为
"black"
。 cra
-
R.O.;默认字符大小
(width, height)
在‘rasters’(像素)中。有些设备没有像素的概念,因此假定任意像素大小,通常为 1/72 英寸。这些测量值与cin
,用不同的单位表示。 crt
-
指定单个字符应如何旋转的数值(以度为单位)。期望 90 的倍数以外的值起作用是不明智的。与进行字符串旋转的
srt
进行比较。 csi
-
R.O.; (default-sized) 个字符的高度(以英寸为单位)。与
par("cin")[2]
. cxy
-
R.O.;默认字符大小
(width, height)
以用户坐标单位表示。par("cxy")
是par("cin")/par("pin")
缩放到用户坐标。注意c(strwidth(ch), strheight(ch))
对于给定的字符串ch
通常更加精确。 din
-
R.O.;设备尺寸,
(width, height)
, 以英寸来算。也可以看看dev.size
,当屏幕上的设备窗口大小调整时,它会立即更新。 err
-
(未实现;R当绘图区域之外的点处于静音状态时不是绘制。)所需的错误报告程度。
family
-
用于绘制文本的字体系列的名称。允许的最大长度为 200 字节。每个图形设备都会将该名称映射到设备特定的字体说明。默认值是
""
,这意味着将使用默认的设备字体(这些字体应该在设备的帮助页面上列出)。标准值是"serif"
、"sans"
和"mono"
,并且 Hershey 字体系列也可用。 (设备可能会定义其他设备,有些设备会完全忽略此设置。以"Hershey"
开头的名称会被特殊处理,并且只能用于内置的 Hershey 字体系列。)这可以为text
内联指定。 fg
-
用于绘图前景的颜色。这是用于绘图周围的轴和框等内容的默认颜色。当从
par()
调用时,这也会将参数col
设置为相同的值。请参阅“颜色规格”部分。一些设备有一个参数来设置初始值,否则为"black"
。 fig
-
c(x1, x2, y1, y2)
形式的数值向量,给出设备显示区域中图形区域的 (NDC) 坐标。如果您设置此选项,则与 S 不同,您将开始一个新绘图,因此要添加到现有绘图,也请使用new = TRUE
。 fin
-
图形区域尺寸
(width, height)
,以英寸为单位。如果你设置了这个,与 S 不同,你会开始一个新的绘图。 font
-
一个整数,指定文本使用哪种字体。如果可能,设备驱动程序会进行安排,使 1 对应于纯文本(默认),2 对应于粗体,3 对应于斜体,4 对应于粗体斜体。此外,字体 5 预计是 Adobe 符号编码中的符号字体。在某些设备上,可以通过
family
选择字体系列,以选择不同的 5 种字体集。 font.axis
-
用于轴注释的字体。
font.lab
-
用于 x 和 y 标签的字体。
font.main
-
用于绘图主标题的字体。
font.sub
-
用于绘图副标题的字体。
lab
-
形式的数值向量
c(x, y, len)
它修改轴注释的默认方式。的值x
和y
给出 x 轴和 y 轴上刻度线的(近似)数量,并且len
指定标签长度。默认为c(5, 5, 7)
.len
未实现在R. las
-
{0,1,2,3} 中的数字;轴标签的样式。
- 0:
-
始终平行于轴[默认],
- 1:
-
始终水平,
- 2:
-
始终垂直于轴线,
- 3:
-
始终垂直。
也受
mtext
支持。请注意,通过参数srt
到par
的字符串/字符旋转不会影响轴标签。 lend
-
线端样式。这可以指定为整数或字符串:
0
-
和
"round"
表示圆线帽[默认]; 1
-
和
"butt"
表示对接线帽; 2
-
和
"square"
均方线帽。
lheight
-
行高乘数。文本行的高度(用于垂直间隔多行文本)是通过将字符高度乘以当前字符扩展和行高乘数得出的。默认值为 1。用于
text
和strheight
。 ljoin
-
线连接样式。这可以指定为整数或字符串:
0
-
和
"round"
表示圆角线连接[默认]; 1
-
和
"mitre"
表示斜接线连接; 2
-
和
"bevel"
表示斜角线连接。
lmitre
-
线斜接限制。这控制斜接线连接何时自动转换为斜角线连接。该值必须大于 1,默认值为 10。并非所有设备都会遵循此设置。
lty
-
线路类型。线型可以指定为整数(0=空白、1=实线(默认)、2=虚线、3=点线、4=点线、5=长线、6=双线)或字符串之一
"blank"
、"solid"
、"dashed"
、"dotted"
、"dotdash"
、"longdash"
或"twodash"
,其中"blank"
使用“不可见线”(即不绘制它们)。或者,可以给出最多 8 个字符的字符串(来自
c(1:9, "A":"F")
),给出交替绘制和跳过的线段的长度。请参阅“线路类型规范”部分。 lwd
-
线宽,正数,默认为
1
。解释是特定于设备的,并且某些设备不实现小于 1 的线宽。 (详细解释请参见设备帮助。)lines
和segments
等函数接受回收的值向量:在这种用途中,对应于值NA
或NaN
的行被省略。0
的解释是特定于设备的。 mai
-
形式的数值向量
c(bottom, left, top, right)
它给出了以英寸为单位指定的边距大小。
mar
-
c(bottom, left, top, right)
形式的数值向量,给出要在图的四个边上指定的边距行数。默认为c(5, 4, 4, 2) + 0.1
。 mex
-
mex
是字符大小扩展因子,用于说明绘图边的坐标。请注意,这不会更改字体大小,而是指定用于在mar
和mai
之间以及oma
和omi
之间转换的字体大小(作为csi
的倍数)。当设备打开时,它以
1
开始,并在布局更改时重置(同时重置cex
)。 mfcol, mfrow
-
c(nr, nc)
形式的向量。后续图形将分别按列 (mfcol
) 或行 (mfrow
) 在设备上的nr
×nc
数组中绘制。在恰好有两行和两列的布局中,
"cex"
的基值减小 0.83 倍:如果有 3 行或更多行或列,则减小系数为 0.66。设置布局会将
cex
和mex
的基值重置为1
。如果查询其中任何一个,它将给出当前布局,因此查询无法告诉您数组的填充顺序。
考虑替代方案
layout
和split.screen
。 mfg
-
c(i, j)
形式的数值向量,其中i
和j
指示接下来要绘制图形数组中的哪个图形(如果设置)或正在绘制(如果查询)。该数组必须已由mfcol
或mfrow
设置。为了与 S 兼容,也接受
c(i, j, nr, nc)
形式,此时nr
和nc
应为当前行数和列数。不匹配将被忽略,并发出警告。 mgp
-
轴标题、轴标签和轴线的边距线(以
mex
单位表示)。请注意,mgp[1]
影响title
而mgp[2:3]
影响axis
。默认为c(3, 1, 0)
。 mkh
-
当值为时要绘制的符号的高度(以英寸为单位)
pch
是一个整数。完全被忽略了R. new
-
逻辑上,默认为
FALSE
。如果设置为TRUE
,下一个高级绘图命令(实际上plot.new
) 绘制前不应清洁框架就好像它在一个新的设备。尝试使用时会出现错误(忽略警告)new = TRUE
在当前不包含高级绘图的设备上。 oma
-
形式的向量
c(bottom, left, top, right)
给出文本行中外边距的大小。
omd
-
c(x1, x2, y1, y2)
形式的向量,给出 NDC(= 标准化设备坐标)中外边距内的区域,即作为设备区域的一部分(在 中)。 omi
-
c(bottom, left, top, right)
形式的向量给出外边距的大小(以英寸为单位)。 page
-
R.O.;一个布尔值,指示下一次调用是否
plot.new
即将开始新的一页。这个值可能是FALSE
如果页面上有多个图形。 pch
-
指定符号的整数或用作绘图点默认值的单个字符。有关可能的值及其解释,请参阅
points
。请注意,只有整数和单字符串可以设置为图形参数(而不是NA
和NULL
)。某些函数(例如
points
)接受回收的值向量。 pin
-
当前绘图尺寸
(width, height)
,以英寸为单位。 plt
-
c(x1, x2, y1, y2)
形式的向量,以当前图形区域的分数形式给出绘图区域的坐标。 ps
-
整数;文本的点大小(但不是符号)。与大多数设备的
pointsize
参数不同,这不会改变mar
和mai
(也不改变oma
和omi
)之间的关系。“点大小”的含义因设备而异,但大多数设备表示 1bp 的倍数,即 1/72 英寸。
pty
-
指定要使用的绘图区域类型的字符;
"s"
生成方形绘图区域,"m"
生成最大绘图区域。 smo
-
(未实现)指示圆和圆弧的平滑程度的值。
srt
-
字符串旋转度数。请参阅有关
crt
的评论。仅受text
支持。 tck
-
刻度线的长度作为绘图区域的宽度或高度中较小者的分数。如果
tck >= 0.5
它被解释为相关边的分数,所以如果tck = 1
绘制网格线。默认设置 (tck = NA
) 是使用tcl = -0.5
。 tcl
-
刻度线的长度占文本行高度的一部分。默认值为
-0.5
;设置tcl = NA
设置tck = -0.01
,这是S的默认值。 usr
-
c(x1, x2, y1, y2)
形式的向量给出绘图区域的用户坐标的极值。当使用对数刻度时(即par("xlog")
为 true,见下文),则 x-limits 将是10 ^ par("usr")[1:2]
。 y 轴也是如此。 xaxp
-
c(x1, x2, n)
形式的向量,给出当par("xlog")
为 false 时极限刻度线的坐标以及刻度线之间的间隔数。否则,当对数坐标处于活动状态时,这三个值具有不同的含义:对于小范围,n
为负数,刻度与线性情况相同,否则,n
位于1:3
中,指定一个案例编号,x1
和x2
是用户坐标10 ^ par("usr")[1:2]
内 10 的最低和最高幂。 ("usr"
坐标在这里进行了 log10 转换!)- n = 1
-
将在 处为整数 生成刻度线,
- n = 2
-
给出标记 和 ,
- n = 3
-
给出标记 和 。
参看
axTicks()
为了一个纯粹的R的实施。当设置用户坐标系时,例如通过开始新页面或通过调用
plot.window
或设置par("usr")
:n
取自par("lab")
,此参数将被重置。它会影响第 1 侧或第 3 侧对axis
的后续调用的默认行为。它仅与默认数字轴系统相关,与日期等无关。
xaxs
-
用于 x 轴的轴间隔计算的样式。可能的值为
"r"
,"i"
,"e"
,"s"
,"d"
。样式通常由数据范围或xlim
,如果给定的话。
风格"r"
(常规)首先将数据范围在每一端扩展 4%,然后找到一个具有适合扩展范围的漂亮标签的轴。
风格"i"
(内部)只是找到一个带有漂亮标签且适合原始数据范围的轴。
风格"s"
(标准)找到一个带有漂亮标签的轴,其中原始数据范围适合。
风格"e"
(扩展)就像风格"s"
,除了它还确保在边界框内有绘制符号的空间。
风格"d"
(direct) 指定应在后续绘图中使用当前轴。
(仅有的"r"
和"i"
样式已实施于R.) xaxt
-
指定 x 轴类型的字符。指定
"n"
会禁止绘制轴。标准值为"s"
:为了与 S 值兼容"l"
和"t"
被接受,但等同于"s"
:"n"
以外的任何值都意味着绘图。 xlog
-
逻辑值(请参阅
plot.default
中的log
)。如果TRUE
,则使用对数刻度(例如,在plot(*, log = "x")
之后)。对于新设备,默认为FALSE
,即线性比例。 xpd
-
逻辑值或
NA
。如果FALSE
,所有绘图都被剪切到绘图区域,如果TRUE
,所有绘图都被剪切到图形区域,如果NA
,所有绘图都被剪切到设备区域。另请参阅clip
。 yaxp
-
c(y1, y2, n)
形式的向量,给出极限刻度线的坐标以及刻度线之间的间隔数,除非对于对数坐标,请参见上面的xaxp
。 yaxs
-
用于 y 轴的轴间隔计算的样式。请参阅上面的
xaxs
。 yaxt
-
指定 y 轴类型的字符。指定
"n"
会抑制绘图。 ylbias
-
用于在页边距中定位文本的正实数值
axis
和mtext
。默认值原则上是特定于设备的,但目前0.2
对于所有的R自己的设备。将其设置为0.2
为了兼容R< 2.14.0 上x11
和windows()
设备。 ylog
-
逻辑值;请参阅上面的
xlog
。
颜色规格
可以用几种不同的方式指定颜色。最简单的方法是使用给出颜色名称的字符串(例如 "red"
)。可以使用函数 colors
获得可能颜色的列表。或者,可以使用 "#RRGGBB"
形式的字符串直接根据其 RGB 分量来指定颜色,其中 RR
、 GG
、 BB
中的每对都由两个十六进制数字组成,给出范围内的值00
到 FF
。还可以通过在小颜色表中提供索引来指定颜色, palette
:索引环绕,因此使用大小为 8 的默认调色板, 10
与 2
相同。这提供了与 S 的兼容性。索引 0
对应于背景颜色。请注意,调色板(除了每个设备的 0
之外)是每个会话的设置。
负整数颜色是错误的。
此外,"transparent"
是透明的,对于填充区域(例如背景!)很有用,但对于线条或文本等内容不可见。在大多数情况下(整数) NA
相当于 "transparent"
(但不适用于 text
和 mtext
)。
半透明颜色可在支持它们的设备上使用。
函数 rgb
、 hsv
、 hcl
、 gray
和 rainbow
提供了生成颜色的其他方法。
线型规格
线型可以通过给小型内置线型表提供索引来指定(1 = 实线,2 = 虚线等,请参阅上面的 lty
),也可以直接指定为线的开/关延伸长度。这是通过偶数个(最多八个)字符的字符串来完成的,即非零(十六进制)数字,它给出了字符串中连续位置的长度。例如,字符串 "33"
指定三个单位打开,然后三个单位关闭,"3313"
指定三个单位打开,然后三个单位关闭,最后一个单位打开,最后三个单位关闭。这里的 ‘units’ (在大多数设备上)与 lwd
成比例,而 lwd = 1
则以像素或点或 1/96 英寸为单位。
五个标准 dash-dot 线型 ( lty = 2:6
) 对应于 c("44", "13", "1343", "73", "2262")
。
请注意,NA
不是 lty
的有效值。
注意
如果设备大小已调整,则很难预测示例中恢复所有(可设置)图形参数的效果。他们中的一些人试图以不同的方式设置相同的东西,字母表中最后的人将获胜。特别是, mai
、 mar
、 pin
、 plt
和 pty
的设置相互作用,外边距设置、图形布局和图形区域大小也是如此。
例子
op <- par(mfrow = c(2, 2), # 2 x 2 pictures on one plot
pty = "s") # square plotting region,
# independent of device size
## At end of plotting, reset to previous settings:
par(op)
## Alternatively,
op <- par(no.readonly = TRUE) # the whole list of settable par's.
## do lots of plotting and par(.) calls, then reset:
par(op)
## Note this is not in general good practice
par("ylog") # FALSE
plot(1 : 12, log = "y")
par("ylog") # TRUE
plot(1:2, xaxs = "i") # 'inner axis' w/o extra space
par(c("usr", "xaxp"))
( nr.prof <-
c(prof.pilots = 16, lawyers = 11, farmers = 10, salesmen = 9, physicians = 9,
mechanics = 6, policemen = 6, managers = 6, engineers = 5, teachers = 4,
housewives = 3, students = 3, armed.forces = 1))
par(las = 3)
barplot(rbind(nr.prof)) # R 0.63.2: shows alignment problem
par(las = 0) # reset to default
require(grDevices) # for gray
## 'fg' use:
plot(1:12, type = "b", main = "'fg' : axes, ticks and box in gray",
fg = gray(0.7), bty = "7" , sub = R.version.string)
ex <- function() {
old.par <- par(no.readonly = TRUE) # all par settings which
# could be changed.
on.exit(par(old.par))
## ...
## ... do lots of par() settings and plots
## ...
invisible() #-- now, par(old.par) will be executed
}
ex()
## Line types
showLty <- function(ltys, xoff = 0, ...) {
stopifnot((n <- length(ltys)) >= 1)
op <- par(mar = rep(.5,4)); on.exit(par(op))
plot(0:1, 0:1, type = "n", axes = FALSE, ann = FALSE)
y <- (n:1)/(n+1)
clty <- as.character(ltys)
mytext <- function(x, y, txt)
text(x, y, txt, adj = c(0, -.3), cex = 0.8, ...)
abline(h = y, lty = ltys, ...); mytext(xoff, y, clty)
y <- y - 1/(3*(n+1))
abline(h = y, lty = ltys, lwd = 2, ...)
mytext(1/8+xoff, y, paste(clty," lwd = 2"))
}
showLty(c("solid", "dashed", "dotted", "dotdash", "longdash", "twodash"))
par(new = TRUE) # the same:
showLty(c("solid", "44", "13", "1343", "73", "2262"), xoff = .2, col = 2)
showLty(c("11", "22", "33", "44", "12", "13", "14", "21", "31"))
参考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
Murrell, P. (2005) R Graphics. Chapman & Hall/CRC Press.
也可以看看
plot.default
用于一些高级绘图参数; colors
; clip
; options
用于其他设置参数;图形设备 x11
、 postscript
并通过 layout
和 split.screen
设置设备区域。
相关用法
- R pairs 散点图矩阵
- R panel.smooth 简单面板图
- R plot.histogram 绘制直方图
- R points 向绘图添加点
- R plot.raster 绘制光栅图像
- R plot.factor 绘制因子变量
- R plot.table 表对象的绘图方法
- R polygon 多边形绘制
- R plot.default 默认散点图函数
- R plot.window 设置图形窗口的世界坐标
- R plot.xy 基本内部绘图函数
- R persp 透视图
- R pie 饼状图
- R polypath 路径绘制
- R plot.design 绘制设计或模型的单变量效应
- R plot.formula 散点图的公式表示法
- R plot.data.frame DataFrame 的绘图方法
- R legend 将图例添加到绘图中
- R barplot 条形图
- R stem 茎叶图
- R mtext 将文本写入绘图的边距
- R arrows 将箭头添加到绘图中
- R contour 显示轮廓
- R stars 星图(蜘蛛图/雷达图)和线段图
- R box 在地块周围画一个方框
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Set or Query Graphical Parameters。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。