grid.convert
位于 grid
包(package)。 说明
这些函数采用一个单位对象并将其转换为不同坐标系中的等效单位对象。
用法
convertX(x, unitTo, valueOnly = FALSE)
convertY(x, unitTo, valueOnly = FALSE)
convertWidth(x, unitTo, valueOnly = FALSE)
convertHeight(x, unitTo, valueOnly = FALSE)
convertUnit(x, unitTo,
axisFrom = "x", typeFrom = "location",
axisTo = axisFrom, typeTo = typeFrom,
valueOnly = FALSE)
参数
x |
一个单位对象。 |
unitTo |
单位转换到的坐标系。有关有效坐标系,请参阅 |
axisFrom |
|
typeFrom |
|
axisTo |
与 |
typeTo |
与 |
valueOnly |
逻辑指示。如果 |
细节
convertUnit
函数允许进行通用转换。对于最常见的转换,其他四个函数只是更方便front-ends。
转换发生在当前视口内。
目前无法转换为所有有效的坐标系(例如"strwidth" 或"grobwidth")。我不确定所有这些是否都是不可能的,在现阶段它们似乎难以置信。
在正常使用网格时,这些函数应该不是必需的。如果您想以英寸而不是用户坐标来表示位置或尺寸,那么您应该简单地执行类似 unit(1, "inches")
的操作,而不是类似 unit(0.134, "native")
的操作。
然而,在某些情况下,用户需要对单位值进行计算,并且该函数变得必要。在这种情况下,请注意以下警告。
值
指定坐标系中的单位对象(除非 valueOnly
是 TRUE
,在这种情况下返回值为数字)。
警告
该转换仅对当前设备尺寸有效。如果调整设备大小,则至少某些转换将变得无效。例如,假设我创建一个单元对象,如下所示:oneinch <- convertUnit(unit(1, "inches"),
"native")
。现在,如果我调整设备大小,以一英寸为单位的单位对象不再对应于 1 英寸的物理长度。
例子
## A tautology
convertX(unit(1, "inches"), "inches")
## The physical units
convertX(unit(2.54, "cm"), "inches")
convertX(unit(25.4, "mm"), "inches")
convertX(unit(72.27, "points"), "inches")
convertX(unit(1/12*72.27, "picas"), "inches")
convertX(unit(72, "bigpts"), "inches")
convertX(unit(1157/1238*72.27, "dida"), "inches")
convertX(unit(1/12*1157/1238*72.27, "cicero"), "inches")
convertX(unit(65536*72.27, "scaledpts"), "inches")
convertX(unit(1/2.54, "inches"), "cm")
convertX(unit(1/25.4, "inches"), "mm")
convertX(unit(1/72.27, "inches"), "points")
convertX(unit(1/(1/12*72.27), "inches"), "picas")
convertX(unit(1/72, "inches"), "bigpts")
convertX(unit(1/(1157/1238*72.27), "inches"), "dida")
convertX(unit(1/(1/12*1157/1238*72.27), "inches"), "cicero")
convertX(unit(1/(65536*72.27), "inches"), "scaledpts")
pushViewport(viewport(width=unit(1, "inches"),
height=unit(2, "inches"),
xscale=c(0, 1),
yscale=c(1, 3)))
## Location versus dimension
convertY(unit(2, "native"), "inches")
convertHeight(unit(2, "native"), "inches")
## From "x" to "y" (the conversion is via "inches")
convertUnit(unit(1, "native"), "native",
axisFrom="x", axisTo="y")
## Convert several values at once
convertX(unit(c(0.5, 2.54), c("npc", "cm")),
c("inches", "native"))
popViewport()
## Convert a complex unit
convertX(unit(1, "strwidth", "Hello"), "native")
作者
Paul Murrell
也可以看看
相关用法
- R grid.copy 制作网格图形对象的副本
- R grid.curve 在位置之间绘制曲线
- R grid.clip 设置剪切区域
- R grid.cap 捕获光栅图像
- R grid.circle 画一个圆
- R grid.draw 画一个网格
- R grid.stroke 描边或填充路径
- R grid.raster 渲染光栅对象
- R grid.points 绘制数据符号
- R grid.force 强制将一个对象放入其组件中
- R grid.display.list 控制网格显示列表
- R grid.show.viewport 绘制网格视口图
- R grid.segments 绘制线段
- R grid.frame 创建用于包装对象的框架
- R grid.group 画一个组
- R grid.pack 将对象打包在框架内
- R grid.text 绘制文字
- R grid.xspline 绘制 X 样条线
- R grid.record 封装计算和绘图
- R grid.pretty 生成一组合理(“漂亮”)的断点
- R grid.grab 抓取当前电网输出
- R grid.show.layout 绘制网格布局图
- R grid.DLapply 修改网格显示列表
- R grid.delay 封装计算并生成grob
- R grid.polygon 绘制多边形
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Convert Between Different grid Coordinate Systems。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。