unit
位于 grid
包(package)。 说明
该函数创建一个单位对象——单位值的向量。单位值通常只是具有关联单位的单个数值。
用法
unit(x, units, data=NULL)
is.unit(x)
参数
x |
一个数值向量。 对于 |
units |
指定相应数值单位的字符向量。 |
data |
此参数用于为特殊 |
细节
单位对象允许用户在大量不同的坐标系中指定位置和尺寸。所有绘图都相对于视口进行,units
指定在该视口内使用的坐标系。
可能的units
(坐标系)是:
"npc"
-
标准化父坐标(默认)。视口的原点为 (0, 0),视口的宽度和高度均为 1 个单位。例如,(0.5, 0.5) 是视口的中心。
"cm"
-
厘米。
"inches"
-
英寸。 1 英寸 = 2.54 厘米。
"mm"
-
毫米。 10 毫米 = 1 厘米。
"points"
-
积分。 72.27 磅 = 1 英寸
"picas"
-
毕卡斯。 1 件 = 12 分
"bigpts"
-
大要点。 72 bp = 1 英寸。
"dida"
-
迪达。 1157 dd = 1238 点
"cicero"
-
西塞罗。 1 cc = 12 dd。
"scaledpts"
-
缩放点。 65536 sp = 1 分
"lines"
-
文本行。位置和尺寸以视口默认文本大小的倍数表示(由视口的
fontsize
和lineheight
指定)。 "char"
-
视口标称字体高度的倍数(由视口的
fontsize
指定)。 "native"
-
位置和尺寸相对于视口的
xscale
和yscale
。 "snpc"
-
平方归一化父坐标。与标准化父坐标相同,但对于水平和垂直位置/尺寸给出相同的答案。它使用npc-width 和npc-height 中的较小者。这对于制作占视口一定比例但必须是正方形(或具有固定纵横比)的东西很有用。
"strwidth"
-
data
参数中指定的字符串宽度的倍数。字体大小由视口的点大小决定。 "strheight"
-
data
参数中指定的字符串高度的倍数。字体大小由视口的点大小决定。 "grobwidth"
-
data
参数中指定的 grob 宽度的倍数。 "grobheight"
-
data
参数中指定的 grob 高度的倍数。
最常见的单位也可以有多种变化。例如,可以使用 "in"
或 "inch"
代替 "inches"
,并使用 "centimetre"
或 "centimeter"
代替 "cm"
。
还允许使用 "null"
的特殊 units
值,但仅在用于指定网格布局中的列宽或行高时才有意义(请参阅 grid.layout
)。
当 unit.length()
大于 1 时,data
参数必须是列表。例如,
unit(rep(1, 3), c("npc", "strwidth", "inches"), data = list(NULL, "my string", NULL))
.
可以以正常方式对单元对象进行子集化并执行子分配(参见示例),但提供了一个特殊函数unit.c
用于组合单元对象。
为单位对象定义了某些算术和汇总运算。特别是,可以添加和减去单元对象(例如, unit(1, "npc") - unit(1, "inches")
),并指定单元对象列表的最小值或最大值(例如, min(unit(0.5, "npc"), unit(1,
"inches"))
)。
单位有一个 format
方法,它应该响应默认 format
方法的参数,例如 digits
来控制为数值打印的有效位数。
is.unit()
函数可以方便地检查x
是否继承自"unit"
类。
值
类 "unit"
的对象。
警告
有一个特殊函数unit.c
用于连接多个单元对象。
c
函数不会给出正确的答案。
曾经有 "mylines"
、 "mychar"
、 "mystrwidth"
、 "mystrheight"
单元。这些仍然会被接受,但工作方式与 "lines"
、 "char"
、 "strwidth"
、 "strheight"
完全相同。
例子
unit(1, "npc")
unit(1:3/4, "npc")
unit(1:3/4, "npc") + unit(1, "inches")
min(unit(0.5, "npc"), unit(1, "inches"))
unit.c(unit(0.5, "npc"), unit(2, "inches") + unit(1:3/4, "npc"),
unit(1, "strwidth", "hi there"))
x <- unit(1:5, "npc")
x[2:4]
x[2:4] <- unit(1, "mm")
x
作者
Paul Murrell
也可以看看
相关用法
- R unit.pmin 并行单元最小值和最大值
- R unit.rep 复制单元对象的元素
- R unitType 返回单位对象的单位
- R unit.length 单位对象的长度
- R unit.c 组合单元对象
- R grid.curve 在位置之间绘制曲线
- R legendGrob 构建一个图例 Grob
- R grid.draw 画一个网格
- R grid.stroke 描边或填充路径
- R viewportTransform 定义组转换
- R grid.raster 渲染光栅对象
- R showGrob 标签网格块
- R gridCoords 为网格对象创建坐标集
- R grid.points 绘制数据符号
- R grid.force 强制将一个对象放入其组件中
- R grobCoords 计算 Grob 周长上的点
- R Working 维护和导航网格视口树
- R grid.display.list 控制网格显示列表
- R dataViewport 根据数据创建带有比例的视口
- R stringWidth 创建说明字符串或数学表达式的宽度和高度的单位
- R grid.show.viewport 绘制网格视口图
- R validDetails 自定义网格 grob 验证
- R grid.segments 绘制线段
- R grid.frame 创建用于包装对象的框架
- R gPath 连接 Grob 名称
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Function to Create a Unit Object。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。