strwidth {graphics} R Documentation

Plotting Dimensions of Character Strings and Math Expressions

Description

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

Usage

strwidth(s, units = "user", cex = NULL)
strheight(s, units = "user", cex = NULL)

Arguments

 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.

Value

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

Examples

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)#- 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: 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") # 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

[Package graphics version 2.5.0 Index]