當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。