graphics | R语言的基础绘图系统(二)—— 绘图参数及par函数
前篇(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函数相关推荐
- R plot图片背景设置为透明_R语言入门第十二讲:基础绘图(二)------plot与par函数(1)...
上一次给大家简单展示了plot函数的用法,以及par函数的使用.今天我们继续应用这两个函数,看看它的其他功能. 下面这个图是数据的一部分[1].我一直认为,作图简单,但关键是要知道数据在数据库中的格式 ...
- 技巧 | 如何使用R语言的基础绘图系统的拼图功能
我们知道ggplot2工具包有很多方便的拼图拓展包,如cowplot.patchwork等,而本篇就来介绍在使用R语言的基础绘图系统如何进行拼图.需要明确的是,基础绘图系统的拼图功能不需要借助任何其他 ...
- R语言零基础基因/数据差异分析(二)
文章目录 结果展示 安装ggplot2包 制作方法 注意,本 系列 有连贯性,每一步都很详细,每一步都很重要,请耐心读完!! 结果展示 安装ggplot2包 如图操作 找到并勾上即可. 制作方法 关于 ...
- 【R语言编程基础】【课后习题答案】【全】
文章目录 第1章 R语言概述 1.选择题 2.操作题 第2章 数据对象与数据读写 1.选择题 2.操作题 第3章 数据集基本处理 1.选择题 2.操作题 第4章 函数与控制流 1.选择题 2.操作题 ...
- R语言七天入门教程二:认识变量与运算符
R语言七天入门教程二:认识变量与运算符 一.什么是变量 1.变量 顾名思义,我们可以将变量理解为"可以改变的量",是计算机语言中能储存计算结果或能表示值的抽象概念.这里的值可以是数 ...
- R语言实战笔记--第十二章 重抽样(置换检验)与自助法
R语言实战笔记–第十二章 重抽样(置换检验)与自助法 标签(空格分隔): R语言 重抽样 自助法 置换检验 置换检验 双样本均值检验的时候,假设检验的方法就是,检查正态性.独立性.方差齐性,分别对应的 ...
- R语言数据处理——基础篇 data.frame基本操作
文章目录 R语言数据处理--基础篇 data.frame基本操作 data.frame的创建 数据访问.条件筛选与删除 数据访问 数据筛选 删除 使用`gather()`进行data.frame数据格 ...
- R语言使用compareGroups包compareGroups函数生成表统计表、createTable函数创建二元表、并导出结果到文档(doc、csv、xlsx、pdf)
R语言使用compareGroups包compareGroups函数生成表统计表.createTable函数创建二元表.并导出结果到文档(doc.csv.xlsx.pdf) 目录 R语言使用compa ...
- r语言编程基础_这项免费的统计编程课程仅需2个小时即可学习R编程语言基础知识
r语言编程基础 Learn the R programming language in this course from Barton Poulson of datalab.cc. This is a ...
最新文章
- 面试之BI-SQL--table转换
- Leetcode 剑指 Offer 04. 二维数组中的查找 (每日一题 20210727)
- flutter分平台主题定制
- 计算机二级学那个科目,考计算机二级选哪个科目好 哪个科目简单
- 作者:郭旦怀(1973-),男,博士,中国科学院计算机网络信息中心副研究员、硕士生导师。...
- 深入了解帆软报表系统的启动过程三
- 梦想成真,喜获微软MVP奖项,微软MVP FAQ?
- 基于用户点击行为的数字图书搜索系统研究与实现 - 中国优秀硕士学位论文全文数据库...
- ios-swift-环信集成
- 整理一下国内比较便宜的云主机
- AutoCAD 2004-2022 官方简体中文版下载直链
- 微信小程序实现车牌号录入
- 题目内容: 你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。 如输入1234,则输出: yi er san si 注意,每个字的拼音之间有一
- [Win10] [C# Desktop] 两种方法发送原生Toast通知
- vc2010串口通信(使用mscomm控件)
- 【DBA100人】Payso张耀辉:学材料专业出身的他转身做了“码农”
- 复旦python课补考_复旦学姐说:“这段科研,最终帮助我这个零经验小白拿下了量化岗实习!”...
- 连接池以及连接池的使用
- 雨天在火车站台上撑伞会触电吗?
- AI就业前景越来越严峻了,AI 开发者能怎样提升个人竞争优势?
热门文章
- vSphere 7.0 GA正式版发布
- 用FRP,内网端口映射到外网,记录
- Redis学习总结(18)——Redis 常见面试题复习
- Java Web学习总结(15)——JSP指令及使用相关总结
- 如何修改DynEd的学生记录服务器,DynEd教师管理端操作文档..docx
- java重置输出窗口_java – 如何重置默认启动器/主屏幕替换?
- _04媒体文件的读取
- 分布式实时日志分析解决方案 ELK 部署架构
- matplotlib.pyplot 让数据可视化
- 博为峰Java技术文章 ——JavaSE Swing 如何使用进度条组件JProgressBarⅡ