strwidth package:graphics R Documentation _P_l_o_t_t_i_n_g _D_i_m_e_n_s_i_o_n_s _o_f _C_h_a_r_a_c_t_e_r _S_t_r_i_n_g_s _a_n_d _M_a_t_h _E_x_p_r_e_s_s_i_o_n_s _D_e_s_c_r_i_p_t_i_o_n: 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")'. _U_s_a_g_e: strwidth(s, units = "user", cex = NULL, font = NULL, vfont = NULL, ...) strheight(s, units = "user", cex = NULL, font = NULL, vfont = NULL, ...) _A_r_g_u_m_e_n_t_s: 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 *c*haracter *ex*pansion factor; multiplied by 'par("cex")' yields the final character size; the default 'NULL' is equivalent to '1'. font, vfont, ...: additional information about the font, possibly including the graphics parameter '"family"': see 'text'. _D_e_t_a_i_l_s: Where an element of 's' is a multi-line string (that is, contains newlines '\n'), the width and height are of an enclosing rectangle of the string as plotted by 'text'. The inter-line spacing is controlled by 'cex', 'par("lheight")' and the 'point size' (but not the actual font in use). Measurements in '"user"' units (the default) are only available after 'plot.new' has been called - otherwise an error is thrown. _V_a_l_u_e: 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). _S_e_e _A_l_s_o: 'text', 'nchar' _E_x_a_m_p_l_e_s: 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