| 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 |
character vector or expressions whose string
widths in plotting units are to be determined. An attempt is made
to coerce other vectors to character, and other language objects
(names and calls) to expressions. |
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. |
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