[R] 繪圖 Par 函数

本篇內文主引用 https://zhuanlan.zhihu.com/p/21394945 之內容再稍加整理
並參照下方有用資源

[rdocumentation] https://www.rdocumentation.org/packages/graphics/versions/3.5.2/topics/par

[Quick-R] https://www.statmethods.net/advgraphs/parameters.html

par 可以設置的繪圖相關參數有3 類:

  1. 只可以查詢而不可以修改的參數, 即readonly 參數, "cin", "cra", "csi", "cxy", "din" 和"page".
  2. 僅能通過par 函數進行設置的參數: "ask", "fig", "fin", "lheight", "mai", "mar", "mex", "mfcol", "mfrow", "mfg", "new", "oma", "omd", "omi", "pin", "plt", "ps", "pty", "usr", "xlog", "ylog", "ylbias".
  3. 剩下的是可以被高級繪圖函數設置的參數, 這些高級繪圖函數主要包括: plot.default, plot.window, points, lines, abline, axis, title, text, mtext, segments, symbols, arrows, polygon, rect, box, contour, filled.contour and image. 相應的參數如: lwd, lty, col, cex 等.

readonly 參數

  • cin :以inch為單位的字符大小(寬,高),如LaTex中使用M x等寬度做度量.
  • cra :以raster (柵格, pixel)來表示的字符大小(寬,高),和cin的區別在於單位不同.
  • csi :以inch為單位的字符高度,同cin的第二個值.
  • cxy :以用戶坐標單位中默認字符大小(寬,高),是par("cin")/par("pin"),其實就是字符對於特定坐標軸的相對大小.
  • din :以inch為單位的設備維度(寬,高),即圖像輸出設備能夠輸出的圖像的大小.
  • page :一個bool值,如果接下來的圖是要開啟新的圖頁,則其值為TRUE;如果接下來的圖是不開啟新的圖頁,則值為FALSE.設定new參數可以改變page的值, page實際上是用來指示是否開啟新圖.

par 限制設定參數 (只能夠通過par 函數來設定, 這些參數對於組合圖和設定圖的邊框等有作用.)

  • ask : bool值,如果是TRUE則在繪製新圖形的時候會詢問用戶.
  • fig :說明了新畫圖在輸出設備上顯示的位置,其值是一個vector c(xleft, xright, ybottom, ytop ),其中每個值均大於0小於1,實際上是相對位置.
  • fin :以inch為單位的圖的維度(寬,高),如果改輸出設備僅輸出一張圖,則fin和din的值是相同的,如果輸出設備輸出由若干子圖構成的圖,則fin和相應子圖對應.
  • lheight :行高倍數,默認是1,通過設置lheight可以調整一行文字的行高, lheight變大,兩行文字的行間距也會變大,主要在text和strheight中使用.
  • mai :以inch為單位的圖像邊距, c(bottom, left, top, right).
  • mar :以行數來表示圖像邊距, c(bottom, left, top, right),默認是c(5, 4, 4, 2) + 0.1.
  • mex :是在邊界中的坐標軸的擴展參數(character size expansion factor),有些類似調整字體大小的cex,是一個比例,來調整mai mar omi oma.當頁面佈局被設置的時候, mex和cex都會被重新設置.
  • mfcol, mfrow :調整圖形輸出設備中子圖排列的向量, c(nrow, ncol), mfcol讓子圖按照列優先排列,相應的, mfrow讓子圖按照行優先排列.當設置mfcol mfrow後, cex和mex的基本單位都相應減小.
  • mfg :指示下一個圖像的輸出位置,設置可以是c(row, col),通過設置mfg可以控制下一個子圖輸出在圖像輸出設備的位置. mfg的設置是和mfrow或者mfcol的設置相對應的, par()$mfg將返回c(row, col, nrow, ncol).
  • new : bool值,默認為FALSE,如果設置為TRUE, page的值會變成FALSE,那麼使用高級繪圖函數不會清除當前內容,而是把圖像重疊.
  • oma :以行數為單位設置的外邊界尺度, c(bottom, left, top, right).
  • omd :給出了按照設備值進行標準化的外邊界範圍, c(x1, x2, y1, y2),每個值的取值範圍在[0,1],為相對比例.
  • omi :以inch為單位設置外邊界尺度, c(bottom, left, top, right).
  • pin :以inch為單位表示的當前圖像的維度.
  • plt :當前繪圖區域的範圍, c(x1, x2, y1, y2),其中每個取值是相對於當前圖像輸出設備的比例,和omd類似.
  • ps :文字點大小的值,是一個設備決定的值, a multiple of 1bp, that is 1/72 of an inch.
  • pty :表示當前繪圖區域的形狀, "s"表示生成一個正方形區域,而"m"表示生成最大的繪圖區域.如果輸出設備是長方形,則"s"將限定輸出正方形.
  • usr :當前繪圖區域的坐標軸範圍, c(xleft, xright, ybottom, ytop),可以直接引用usr的值來獲取當前圖形的x坐標軸或y坐標軸的limit.如果是log坐標軸,則該範圍也是log值.
  • xlog, ylog :設置x或者y為對數坐標軸的bool變量.如果值為TRUE,則相應的坐標軸為對數坐標軸,同時usr所指代的也變成對數.
  • ylbias :

高級繪圖函數支持參數 (可以在高級繪圖函數中進行設置, 主要是調解輸出顯示情況的參數.)

大小

  • 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".

文字

  • 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",平截轉折.

(圖片引自: https://www.statmethods.net/advgraphs/images/lines.png)

  • pch :設置繪圖所用的點的樣式,可以是數字指明符號,或者使用字符做點. points等會繪點函數接受.使用col可以設置實心點的顏色和空心點的外邊界,使用bg可以設置空心點內部顏色.

(圖片引自: https://www.statmethods.net/advgraphs/images/points.png)

坐標軸

  • 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 繪圖區域

參考其他網上給出的繪圖區域和邊緣區域可以更好理解繪圖參數的設置.

(圖片引自: https://www.statmethods.net/advgraphs/index.html)

原文地址:https://www.cnblogs.com/pyleu1028/p/10390621.html