strwidth {graphics}R Documentation

Plotting Dimensions of Character Strings and Math Expressions


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 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).

See Also

text, nchar


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)

par(op)#- reset to previous setting

[Package graphics version 2.1.0 Index]