北京大学生物信息平台论坛

 找回密码
 立即注册
搜索
热搜: 通知 活动

R 学习笔记:par 函数

[复制链接]
wolf 发表于 2016-6-22 09:58:41 | 显示全部楼层 |阅读模式
par 有太多的参数, 遇到问题再查是个好办法, 不过首先应该知道 par 能够调整哪些方面, 这就需要有个小的总结.

par() 本身有 bool 参数 no.readonly, 单纯的 par() 或者 par(no.readonly = TRUE) 可以用来获取所有的参数, 返回结果为 list, 可以保存备份.

par 可以设置的绘图相关参数有 3 类:
  • 只可以查询而不可以修改的参数, 即 readonly 参数, "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 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 所指代的也变成对数.

高级绘图函数支持参数
有些参数可以在高级绘图函数中进行设置, 主要是调解输出显示情况的参数.
大小
  • 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", 平截转折.


  • pch: 设置绘图所用的点的样式, 可以是数字指明符号, 或者使用字符做点. points 等会绘点函数接受. 使用 col 可以设置实心点的颜色和空心点的外边界, 使用 bg 可以设置空心点内部颜色.




坐标轴
  • 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) (参看下面图像区域图片).




回复

使用道具 举报

北京大学生物信息平台论坛

GMT+8, 2017-9-20 04:40 , Processed in 0.042611 second(s), 23 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表