[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

时间: 2024-10-12 02:16:39

[R] 繪圖 Par 函数的相关文章

R语言之merge函数案例

R语言的merge函数可以实现类似SQL的有点类似 left join right join 或者类似union的效果. df1 = data.frame(CustomerId=c(1:6),Product=c(rep("Toaster",3),rep("Radio",3))) > df2 = data.frame(CustomerId=c(2,4,6,7),State=c(rep("Alabama",3),rep("Ohio&q

Android 繪圖白板元件,有畫筆和板擦的功能 (转)

package com.example.drawboard; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import and

VR素材如何搭配不同的繪圖(渲染)引擎呢?

VR素材如何搭配不同的繪圖(渲染)引擎呢? 以製作沉浸式遠端<VR+鋼琴教學>內容為例. Step-1. 首先建立靜態的3D資料模型: 例如,鋼琴素材: Step-2. 撰寫這素材的軟體類別(class),將鋼琴3D資料裝入到軟體類別裡,並添加Meta data和相關的程式碼: Step-3. 依樣畫葫蘆,撰寫其他素材的軟體類別,將其3D資料裝入到軟體類別裡,並添加Meta data和相關的程式碼: Step-4. 將上述三個素材的軟體類別,逐一打包成為Docker標準鏡像(image): 或

R语言中apply函数

前言 刚开始接触R语言时,会听到各种的R语言使用技巧,其中最重要的一条就是不要用循环,效率特别低,要用向量计算代替循环计算. 那么,这是为什么呢?原因在于R的循环操作for和while,都是基于R语言本身来实现的,而向量操作是基于底层的C语言函数实现的,从性能上来看,就会有比较明显的差距了.那么如何使用C的函数来实现向量计算呢,就是要用到apply的家族函数,包括apply, sapply, tapply, mapply, lapply, rapply, vapply, eapply等. 目录

par()函数参数解析

转自:http://blog.sina.com.cn/s/blog_6caea8bf0100yk4h.html R有着非常强大的绘图功能,我们可以利用简单的几行代码绘制出各种图形来,但是有 时候默认的图形设置没法满足我们的需要,甚至会碰到各种各样的小问题:如坐标轴或者标题出界了,或者图例说明的大小或者位置遮挡住了图形,甚至有时候默认 的颜色也不能满足我们的需求.如何进行调整呢?这就用到了“强大”的函数par().我们可以通过设定函数par()的各个参数来调整我们的图形,这篇博 文就是对函数par

R语言hist绘图函数

hist 用于绘制直方图,下面介绍每个参数的作用: 1)x: 用于绘制直方图的数据,该参数的值为一个向量 代码示例: data <- c(rep(1, 10), rep(2, 5), rep(3, 6)) hist(data) 效果图如下: 从图中可以看出,横坐标为不同的区间,纵坐标为落入该区间内的频数: 2) break : 该参数的指定格式有很多种 第一种: 指定一个向量,给出不同的断点 代码示例: data <- c(rep(1, 10), rep(2, 5), rep(3, 6)) h

R语言低级绘图函数-text

text函数用来在一张图表上添加文字,只需要指定对应的x和y坐标,以及需要添加的文字内容就可以了 基本用法: plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), type = "n") text(x = 3, y = 3, labels = "text") 效果图如下: 支持同时创建多个text标签 代码示例: plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), type = "

R语言低级绘图函数-axis

axis函数用来在一张图表上添加轴线,区别于传统的x轴和y轴,axis 允许在上,下,左, 右4个方向添加轴线 以x轴为例,一条轴线包含3个元素,水平的一条横线,叫做axis line , 刻度线, 叫做tick line, 对应的标签 labels 基本用法: 通过side 参数设置需要添加的轴线的方向,从下边开始,沿逆时针方向,数字为1到4 代码示例: par(oma = c(1, 1, 1, 1), mfrow = c(1, 4)) plot(1:5, 1:5, xlim = c(0,6)

R语言的自定义函数—字符组合

前两天写了几个函数,对里面收获到的一些东西做一些记录. 函数str_comb,用于输入一个字符串或数值向量,返回由向量中元素组成的不重复的长度小于向量长度的所有组合,结果用矩阵形式输出. 函数使用结果如下: 思路很简单,在R中有个函数combn函数,能产生指定向量中元素组成的指定长度的组合,这个函数做的就是将这些组合放到一起,所以重点就是combn函数和循环. 不过最后多了一个空值,应该是停止条件出了点毛病,不过我自己没看出来,有人愿意指教最好. 里面涉及到的一些R基础: 1.choose函数: