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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。