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