| strwidth {graphics} | R Documentation |
These functions compute the width or height, respectively, of the
given strings or mathematical expressions s[i] on
the current plotting device in user coordinates, inches
or as fraction of the figure width par("fin").
strwidth(s, units = "user", cex = NULL) strheight(s, units = "user", cex = NULL)
s |
a character or expression vector whose dimensions
are to be determined. Other objects are coerced by
as.graphicsAnnot. |
units |
character indicating in which units s is measured;
should be one of "user", "inches", "figure";
partial matching is performed. |
cex |
numeric character expansion factor; multiplied
by par("cex") yields the final character size; the
default NULL is equivalent to 1. |
Where an element of s is a multi-line string (that is, contains
newlines \n), the width and height are of an enclosing
rectangle of the string as plotted by text in the
current font. The inter-line spacing is controlled by cex,
par("lheight") and the ‘point size’ (but not
the actual font in use).
Numeric vector with the same length as s, giving the
width or height for each s[i]. NA strings are given
width and height 0 (as they are not plotted).
str.ex <- c("W","w","I",".","WwI.")
op <- par(pty='s'); plot(1:100,1:100, type="n")
sw <- strwidth(str.ex); sw
all.equal(sum(sw[1:4]), sw[5])
#- since the last string contains the others
sw.i <- strwidth(str.ex, "inches"); 25.4 * sw.i # width in [mm]
unique(sw / sw.i)
# constant factor: 1 value
mean(sw.i / strwidth(str.ex, "fig")) / par('fin')[1] # = 1: are the same
## See how letters fall in classes
## -- depending on graphics device and font!
all.lett <- c(letters, LETTERS)
shL <- strheight(all.lett, units = "inches") * 72 # 'big points'
table(shL) # all have same heights ...
mean(shL)/par("cin")[2] # around 0.6
(swL <- strwidth(all.lett, units="inches") * 72) # 'big points'
split(all.lett, factor(round(swL, 2)))
sumex <- expression(sum(x[i], i=1,n), e^{i * pi} == -1)
strwidth(sumex)
strheight(sumex)
par(op)#- reset to previous setting