前篇(graphics | 基础绘图系统(一)——主函数plot及其参数)介绍了基础系统的绘图主函数plot()及其参数。实际上,plot()函数的参数主要由par()提供。不同于plot()函数,par()函数的参数除个别外一旦设定,除非再次更改或重启R,否则就会对后续所有的绘图命令起作用。在设置参数之前,可以使用以下代码保存绘图系统的默认参数:

# 储存当前参数
opar <- par(no.readonly = TRUE)

设置参数前可以先查看当前的参数值:

par("usr")
par(c("usr", "fin"))

大部分参数既可以在par()中设置,又可以在plot()中设置,区别在于前者设置的参数对全局起作用,后者设置的参数只对本条命令起作用,相当于plot()中的...参数,个别参数在两种情况下面对的对象也不同。还有,以下参数只能在par()中使用:

  • ask
  • fig, fin
  • lheight
  • mai, mar, mex, mfcol, mfrow, mfg
  • new
  • oma, omd, omi
  • pin, plt, ps, pty
  • usr
  • xlog, ylog
  • ylbias

2 要素美化参数

颜色参数

  • col:图形要素的颜色;
  • bg:背景色;
  • fg:前景色。
  • bg在par()设置时表示整个绘图页面的背景颜色,在plot()设置时只表示绘图图形的背景色;
  • fg表示除绘图图形要素以外的几何图形的颜色,如边框、坐标轴刻度线。

点和线要素参数

  • cex:控制点状要素相对默认大小的倍数;
  • pch:控制点状要素的形状,系统默认提供26种类型,分别以0-25之间的整数表示,也可以自定义字符;
  • lwd:控制线状要素相对默认粗细的倍数;
  • lty:控制线状要素的类型,系统默认提供7种类型,分别以0-6之间的整数表示;
par(mex = 0.5, mar = c(0, 0.5, 0, 0))
x <- c(rep(1:5, 5), 1)
y <- c(rep(5:1, each = 5), 0) + 1
plot(x,y, pch = 0:25, xlim = c(-1, 6), ylim = c(0, 7),col = "red", bg = "blue", cex = 3,axes = F, ann = F)
box("figure")
text(x+0.5, y, labels = 0:25)
segments(0.5, 6.5:0.5, 5.5, 6.5:0.5,lty = 0:6, lwd = 2, col = "grey")
text(-0.9, 6.5:0.5, adj = 0, labels = c("0 = blank", "1 = solid", "2 = dashed", "3 = dotted","4 = dotdash", "5 = longdash", "6 = twodash"))

上图展示了参数cex和lty各种取值的实际样式:

  • cex取值在21-25之间时可以分别使用col和bg参数分别设置点要素的边框和内部的颜色;
  • cex取16和19的区别是,后者可以使用lwd调整边界线粗细;
  • cex取19和20的区别是,后者是前者的2/3大小;
  • lty为0时隐藏线条。
  • lend:控制线状要素端点的形状,整型参数。0表示圆角,1表示短直角,2表示长直角;
  • ljoin:控制线条相交时的形状;
  • lmitre:控制线条斜交时的过渡特征。

文本参数

  • family:设置字体;
  • font:整型参数,设置字体形态。1代表默认状态,2表示黑体,3表示斜体,4表示黑色斜体;
  • lheigh:数值型参数,文本行高的倍数,仅在par()函数中生效;
  • ps:整型参数,控制文本尺寸但不改变行高。

坐标轴刻度

  • xlog、ylog:逻辑型参数,分别控制x轴和y轴刻度的对数化,默认为FASL,只能在par()函数内生效;
  • xaxp、yaxp:分别控制x轴和y轴刻度线标记的起始位置和间隔数量,形式为c(x1, x2, n)或c(y1, y2, n),依次表示刻度线起、始位置和间隔个数;
  • lab:控制坐标轴刻度个数,形式为c(x, y, len),默认值为c(5,5,7),依次表示x和y轴刻度个数,len为无效参数。

二级命名参数

构成规则:主参数+要素关键字

  • 关键字及含义:axis——坐标刻度值,lab——坐标轴标签,main——图形标题,sub——图形副标题;
  • 颜色:col.axis、col.lab、col.main、col.sub;
  • 大小:cex.axis、cex.lab、cex.main、cex.sub;
  • 字体:font.axis、font.lab、font.main、font.sub。

显示与对齐

以下参数控制文本的显示和对齐:

  • xpd:逻辑型参数或NA,FALSE表示只显示plot region内的文本,TRUE表示只显示figure region内的文本,NA表示显示整个device region内的文本;
  • adj:数值型参数,控制text()mtext()title()函数呈现的文本对齐方式,数值介于0-1之间,其中0表示左对齐,1表示右对齐,0.5表示居中;
  • crt:控制文本旋转幅度,单位为弧度,针对单个文本;
  • srt:控制text()函数中文本的旋转幅度,单位为弧度,针对整行文本。

以下参数控制坐标轴刻度的显示和对齐:

  • ann:逻辑型参数,控制图像标题和坐标轴标签的显示,默认为TRUE;
  • xaxt、yaxt:分别控制x轴和y轴刻度线和刻度值的显示。n表示不显示刻度线和刻度值,s是默认值表示显示,l和t等价于s;
  • xaxs、yaxs:分别控制x轴和y轴刻度线标记方式。r为默认值,会分别在两端留出坐标轴长度4%的空白,再标记刻度线,i表示不留出额外空白;
  • tck、tcl:数值型参数,控制刻度线的长度;大于0时刻度线向内,小于0时刻度线向外;tcl默认值为-0.5,tck默认值为NA,且最大值是1,相当于绘制网格;
  • las:整型参数,控制刻度文本的方向;0表示平行于坐标轴,1表示始终平行于x轴,2表示垂直于坐标轴,3表示始终垂直于x轴。

以下参数控制边框的显示:

  • bty:控制plot region边框的显示;默认值为o,即四周都有边框,l、7、c、u、]分别根据这些字符的形状显示边框,如u表示上方开口,n表示四周都没有边框。

3 布局参数

par(oma = c(2, 2.5, 2, 2.5), mar = c(3, 2, 2, 0.95),fig = c(0.1, 0.95, 0.1, 0.9), xpd = NA)
plot(sin, 0, 2*pi, type = "l", frame.plot = F, ann = F)
box("plot", col = "red")
box("figure", col = "green")
box("inner", col = "blue")
box("outer", col = "black")
text(pi, 0, labels = "plot region")
text(pi, 1.25, labels = "figure region")
text(pi, 1.65, labels = "display region")
text(pi, 2, labels = "device region")
text(5.5, 1, labels = "plot side", col = "red")
text(5.5, 1.35, labels = "figure margin", col = "red")
text(5.5, 1.75, labels = "inner margin", col = "red")
text(5.5, 2.1, labels = "outer margin", col = "red")

上图展示了图形中各个区域和边框的名称:

  • 默认状态下,display region和device region边框重合,figure region又与inner region边框重合,坐标轴线与plot region的边框重合。

尺寸参数

以下参数用于读取文本尺寸,均为只读参数:

  • cin、cra:读取当前字体大小,形式为(width, height),前者单位为英寸,后者单位为像素;
  • csi:读取当前字体的高度,单位英寸,相当于参数cin的第2个元素;
  • cxy:读取文本大小和plot region大小的比例,相当于cin与pin之比。
  • 只读参数随着其他参数的设置或者拖拽RStudio界面自动改变,不能主动设置;
  • 使用par(“参数名”)读取参数大小。

以下参数用于读取或设置各区域尺寸:

  • din:只读参数,读取device region的尺寸,单位英寸,形式为(width, height);
  • fin:控制figure region的尺寸,单位英寸,形式为(width, height);
  • pin:控制plot region的尺寸,单位英寸,形式为(width, height)。

以下参数用于设置各区域相对位置:

  • omd:形式为c(x1, x2, y1, y2),控制display region在device region的相对位置,各元素使用占比表示,如x1 = 0.1表示display region的左侧边框在device region边框长度的1/10处;
  • fig:形式为c(x1, x2, y1, y2),控制figure region在display region的相对位置,各元素使用占比表示;
  • plt:形式为c(x1, x2, y1, y2),控制plot region在figure region的相对位置,各元素使用占比表示;
  • usr:控制plot region的坐标范围,形式为c(x1, x2, y1, y2);若xlog或ylog为TRUE,则实际显示范围为10^usr;该参数只能在par()函数内设置。

边距参数

  • mgp:设置文本与plot side的距离,默认值为c(3,1,0),依次表示图形标题、坐标轴标签、坐标轴轴线距边框的距离;
  • ylbias:数值型参数,控制axis()mtext()函数提供的文本与相应边框的距离;
  • mex:文本行高的倍数,默认为1,常作为某些边距参数的单位;
  • oma、omi:控制inner margin与outer margin的距离,形式为c(bottom, left, top, right),依次表示下、左、上、右方向的距离;前者单位是mex,后者单位是英寸;
  • mar、mai:控制plot side与figure margin的距离,形式为c(bottom, left, top, right),mar单位是mex,默认值为c(5,4,4,2) + 0.1,mai单位是英寸。

分图参数

  • page:只读参数,逻辑型参数,检查下条绘图命令是否新建绘图页面;
  • new:逻辑型参数,默认为FASLE,若为TRUE,则下条绘图命令在原页面添加图形,不再新建绘图页面;该参数只能在par()函数内设置,且只起一次作用,多次原页面添加图形也需要多次设置该参数;
  • mfrow、mfcol:控制一个绘图页面子图的排列情况,形式为c(nr, nc),如c(3,2)表示3行2列;前者表示先横向排列,后者表示先纵向排列;该参数只能在par()函数内生效;
  • mfg:在mfrow或mfcol设置的情况下,可以直接指定本条命令产生的子图在页面的位置。

4 其他参数

  • ask:逻辑型参数;对于一次运行后会绘制多个图形的情况,若ask参数设置为TRUE,每次绘图后需要人工确认才会绘制下一个图形。

graphics | R语言的基础绘图系统(二)—— 绘图参数及par函数相关推荐

  1. R plot图片背景设置为透明_R语言入门第十二讲:基础绘图(二)------plot与par函数(1)...

    上一次给大家简单展示了plot函数的用法,以及par函数的使用.今天我们继续应用这两个函数,看看它的其他功能. 下面这个图是数据的一部分[1].我一直认为,作图简单,但关键是要知道数据在数据库中的格式 ...

  2. 技巧 | 如何使用R语言的基础绘图系统的拼图功能

    我们知道ggplot2工具包有很多方便的拼图拓展包,如cowplot.patchwork等,而本篇就来介绍在使用R语言的基础绘图系统如何进行拼图.需要明确的是,基础绘图系统的拼图功能不需要借助任何其他 ...

  3. R语言零基础基因/数据差异分析(二)

    文章目录 结果展示 安装ggplot2包 制作方法 注意,本 系列 有连贯性,每一步都很详细,每一步都很重要,请耐心读完!! 结果展示 安装ggplot2包 如图操作 找到并勾上即可. 制作方法 关于 ...

  4. 【R语言编程基础】【课后习题答案】【全】

    文章目录 第1章 R语言概述 1.选择题 2.操作题 第2章 数据对象与数据读写 1.选择题 2.操作题 第3章 数据集基本处理 1.选择题 2.操作题 第4章 函数与控制流 1.选择题 2.操作题 ...

  5. R语言七天入门教程二:认识变量与运算符

    R语言七天入门教程二:认识变量与运算符 一.什么是变量 1.变量 顾名思义,我们可以将变量理解为"可以改变的量",是计算机语言中能储存计算结果或能表示值的抽象概念.这里的值可以是数 ...

  6. R语言实战笔记--第十二章 重抽样(置换检验)与自助法

    R语言实战笔记–第十二章 重抽样(置换检验)与自助法 标签(空格分隔): R语言 重抽样 自助法 置换检验 置换检验 双样本均值检验的时候,假设检验的方法就是,检查正态性.独立性.方差齐性,分别对应的 ...

  7. R语言数据处理——基础篇 data.frame基本操作

    文章目录 R语言数据处理--基础篇 data.frame基本操作 data.frame的创建 数据访问.条件筛选与删除 数据访问 数据筛选 删除 使用`gather()`进行data.frame数据格 ...

  8. R语言使用compareGroups包compareGroups函数生成表统计表、createTable函数创建二元表、并导出结果到文档(doc、csv、xlsx、pdf)

    R语言使用compareGroups包compareGroups函数生成表统计表.createTable函数创建二元表.并导出结果到文档(doc.csv.xlsx.pdf) 目录 R语言使用compa ...

  9. r语言编程基础_这项免费的统计编程课程仅需2个小时即可学习R编程语言基础知识

    r语言编程基础 Learn the R programming language in this course from Barton Poulson of datalab.cc. This is a ...

最新文章

  1. 面试之BI-SQL--table转换
  2. Leetcode 剑指 Offer 04. 二维数组中的查找 (每日一题 20210727)
  3. flutter分平台主题定制
  4. 计算机二级学那个科目,考计算机二级选哪个科目好 哪个科目简单
  5. 作者:郭旦怀(1973-),男,博士,中国科学院计算机网络信息中心副研究员、硕士生导师。...
  6. 深入了解帆软报表系统的启动过程三
  7. 梦想成真,喜获微软MVP奖项,微软MVP FAQ?
  8. 基于用户点击行为的数字图书搜索系统研究与实现 - 中国优秀硕士学位论文全文数据库...
  9. ios-swift-环信集成
  10. 整理一下国内比较便宜的云主机
  11. AutoCAD 2004-2022 官方简体中文版下载直链
  12. 微信小程序实现车牌号录入
  13. 题目内容: 你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。 如输入1234,则输出: yi er san si 注意,每个字的拼音之间有一
  14. [Win10] [C# Desktop] 两种方法发送原生Toast通知
  15. vc2010串口通信(使用mscomm控件)
  16. 【DBA100人】Payso张耀辉:学材料专业出身的他转身做了“码农”
  17. 复旦python课补考_复旦学姐说:“这段科研,最终帮助我这个零经验小白拿下了量化岗实习!”...
  18. 连接池以及连接池的使用
  19. 雨天在火车站台上撑伞会触电吗?
  20. AI就业前景越来越严峻了,AI 开发者能怎样提升个人竞争优势?

热门文章

  1. vSphere 7.0 GA正式版发布
  2. 用FRP,内网端口映射到外网,记录
  3. Redis学习总结(18)——Redis 常见面试题复习
  4. Java Web学习总结(15)——JSP指令及使用相关总结
  5. 如何修改DynEd的学生记录服务器,DynEd教师管理端操作文档..docx
  6. java重置输出窗口_java – 如何重置默认启动器/主屏幕替换?
  7. _04媒体文件的读取
  8. 分布式实时日志分析解决方案 ELK 部署架构
  9. matplotlib.pyplot 让数据可视化
  10. 博为峰Java技术文章 ——JavaSE Swing 如何使用进度条组件JProgressBarⅡ