[R] 繪圖 Par 函数

时间:2023-02-25 07:54:02

本篇內文主引用 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)

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

  1. R中的par()函数的参数

    把R中par()函数的主要参数整理了一下(另外本来还整理了每个参数的帮助文档中文解释,但是太长,就分类之后,整理为图表,excel不便放上来,就放了这些表的截图)

  2. R语言与医学统计图形【1】par函数

    张铁军,陈兴栋等 著 R语言基础绘图系统 基础绘图包之高级绘图函数--par函数 基础绘图包并非指单独某个包,而是由几个R包联合起来的一个联盟,比如graphics.grDevices等. 掌握par ...

  3. par函数pch参数-控制点的形状

    pch函数用来控制点的形状,这个参数不仅在par函数中有,在大多数的高级绘图函数中都有. 代码示例: plot(rep(1:5, times = 5), rep(5:1, each = 5), pch ...

  4. R语言中apply函数

    前言 刚开始接触R语言时,会听到各种的R语言使用技巧,其中最重要的一条就是不要用循环,效率特别低,要用向量计算代替循环计算. 那么,这是为什么呢?原因在于R的循环操作for和while,都是基于R语言 ...

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

    package com.example.drawboard; import java.util.ArrayList; import java.util.List; import android.con ...

  6. [R]关于R语言的绘图函数

    1. 首先就是plot(x,y,...) 参数: x: 所绘图形横坐标构成的对象 y: 所绘图形纵坐标构成的对象 type: 指定所绘图形类型 pch: 指定绘制点时使用的符号 cex: 指定符号的大 ...

  7. par函数family参数-控制文字的字体

    family用于控制文字的字体, 标准的取值范围为serif, sans, mono, 其中sans 为默认值 基本用法,代码示例: par(mfrow = c(1,3)) par(cex = 1.5 ...

  8. R语言:常用函数【转】

    数据结构 一.数据管理vector:向量 numeric:数值型向量 logical:逻辑型向量 character:字符型向量list:列表 data.frame:数据框 c:连接为向量或列表len ...

  9. R语言 三个函数sort();rank();order()

    R语言入门,弄懂了几个简单的函数,分享一下:R语言排序有几个基本函数: sort():rank():order()sort()是对向量进行从小到大的排序rank()返回的是对向量中每个数值对应的秩or ...

随机推荐

  1. NuGet在Push的时候提示“远程服务器返回错误:(403)已禁用”问题解决

    在使用NuGet把包push到nuget官网的时候,提示了如下信息: Failed to process request. 'The specified API key is invalid or d ...

  2. 转:浅谈CSS在前端优化中一些值得注意的关键点

    前端优化工作中要考虑的元素多种多样,而合理地使用CSS脚本可以在很大程度上优化页面的加载性能,以下我们就来浅谈CSS在前端优化中一些值得注意的关键点: 当谈到Web的“高性能”时,很多人想到的是页面加 ...

  3. Html - 横版TH+TD

    通常可位于表格上方的搜索区域html <div class="panel panel-default"> <div class="panel-body& ...

  4. java 二维码解析和生成

    package ykxw.web.qrcode.utils; import java.awt.Color; import java.awt.Graphics2D; import java.awt.im ...

  5. 一个简单的小小记账本程序&lpar;java&rpar;

    感觉基础知识学了不少,但是一直搞不清一个项目的实际开发流程,所以就借着这个小记账本的程序梳理一下.因为楼主也是出于学习阶段的菜鸟,所以程序可能会有各种玄学的bug,希望一起提升吧. 跟着站长学到了很多 ...

  6. IIS搭建校内小站

    背景 在学校读书最大的烦恼是去机房忘了带作业,或者带了U盘传文件又很容易丢,或者的或者用学校内网网盘又容易忘了上传. 所以笔者搞了个办法. IIS准备工作 win+pause break 打开控制面板 ...

  7. win7 ssh linux虚拟机&lpar;ubuntu12&period;04&rpar;

    环境: 1. 管理vmware Workstation8.0 2. Ubuntu 12.04.iso安装文件 3.Ssh登录软件putty 步骤 1.安装,安装linux系统时,在“硬件”里设置“网络 ...

  8. Spring Boot中使用Spring Security进行安全控制转载来自翟永超

    我们在编写Web应用时,经常需要对页面做一些安全控制,比如:对于没有访问权限的用户需要转到登录表单页面.要实现访问控制的方法多种多样,可以通过Aop.拦截器实现,也可以通过框架实现(比如:Apache ...

  9. struts2 UI标签 和 主题

    四.Struts2的UI标签和主题 1.Struts2中UI标签的优势 自动的数据回显和错误提示功能 自带的简单样式和排版 2.表单标签的通用属性 说明:UI标签中value的取值一般都是字符串. 2 ...

  10. 第28月第3天 c语言读写文件

    1. int ConfigIniFile::OpenFile( const char* szFileName ) { FILE *fp; size_t nLen; int nRet; CloseFil ...