[ top | up ]

measure plotting width of character strings

Syntax

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

Arguments

s character vector whose string widths in plotting units are to be determined.
units character indicating in which units s is measured; must be one of "user", "figure", "inches".
cex character expansion to which is applies. Per default, the current par("cex") is used.

Description

The function computes the width of the given strings s[i] on the current plotting device in user coordinates, inches or as fraction of the figure width par("fin").

Value

integer vector with the same length as s, giving the string width for each s[i].

See Also

text, nchar

Examples

str.ex <- c("W","w","I",".","WwI.") par(pty='s'); plot(1:100,1:100); par('usr') sw <- strwidth(str.ex); sw sum(sw[1:4] == sw[5])#- since the last string contains the others sw / strwidth(str.ex, cex = .5) # between 1.5 & 4.2 (!), font dependent.. 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 & font! all.lett <- c(letters, LETTERS) swL <- strwidth(all.lett) swL <- 3 * swL / min(swL) all(swL == round(swL))#- TRUE ! swL <- as.integer(swL) n.classes <- length(tL <- table(swL)); tL iL <- order(swL) structure(swL[iL], names = all.lett[iL]) lett.classes <- structure(vector("list", n.classes), names= names(tL)) for(i in 1:n.classes) lett.classes[[i]] <- all.lett[swL == as.numeric(names(tL)[i])] lett.classes