当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R strwidth 绘制字符串和数学表达式的维数


R语言 strwidth 位于 graphics 包(package)。

说明

这些函数分别计算当前绘图设备上给定字符串或数学表达式 s[i] 的宽度或高度(以用户坐标、英寸或图形宽度 par("fin") 的分数形式表示)。

用法

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

参数

s

尺寸待确定的字符或 expression 向量。其他对象由 as.graphicsAnnot 强制。

units

指示s测量单位的字符;应该是 "user""inches""figure" 之一;执行部分匹配。

cex

数字字符扩展因子;乘以 par("cex") 得出最终字符大小;默认 NULL 相当于 1

font, vfont, ...

有关字体的其他信息,可能包括图形参数 "family" :请参阅 text

细节

请注意,字符串的‘height’仅由换行数决定("\n",又名“newline”s)。它包含:它是(换行数 - 1)乘以行间距加上所选字体中 "M" 的高度。对于表达式,它是由 plotmath 计算得出的边界框的高度。因此,在这两种情况下,它都是对排版对象在最终基线之上延伸多远的估计。 (它也可能延伸到基线以下。)行间距由 cexpar("lheight") 和“磅值”(但不是实际使用的字体)控制。

仅在调用 plot.new 后才能使用 "user" 单位(默认)进行测量 - 否则会引发错误。

s 长度相同的数值向量,给出每个 s[i] 的宽度或高度估计。 NA 字符串的宽度和高度为 0(因为它们未绘制)。

例子

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

也可以看看

text , nchar

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Plotting Dimensions of Character Strings and Math Expressions。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。