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 expression s 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