
Last chance! 50% off unlimited learning
Sale ends in
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)
unit
function for valid coordinate systems."x"
or "y"
to indicate
whether the unit object represents a value in the x- or
y-direction. "location"
or "dimension"
to indicate whether the unit object represents a location or a
length. axisFrom
, but applies to the unit object
that is to be created. typeFrom
, but applies to the unit object
that is to be created. TRUE
then
the function does not return a unit object, but rather only the
converted numeric values. valueOnly
is TRUE
in which case
the returned value is a numeric).
oneinch <- convertUnit(unit(1, "inches"),
"native"
. Now if I resize the device, the unit object in
oneinch no longer corresponds to a physical length of 1 inch.convertUnit
function allows for general-purpose
conversions. The other four functions are just more convenient
front-ends to it for the most common conversions.The conversions occur within the current viewport.
It is not currently possible to convert to all valid coordinate systems (e.g., "strwidth" or "grobwidth"). I'm not sure if all of these are impossible, they just seem implausible at this stage.
In normal usage of grid, these functions should not be necessary.
If you want to express a location or dimension in inches rather
than user coordinates then you should simply do something like
unit(1, "inches")
rather than something like
unit(0.134, "native")
.
In some cases, however, it is necessary for the user to perform calculations on a unit value and this function becomes necessary. In such cases, please take note of the warning below.
unit
## 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")
Run the code above in your browser using DataLab