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


R text 將文本添加到繪圖中


R語言 text 位於 graphics 包(package)。

說明

textxy 給出的坐標處繪製向量 labels 中給出的字符串。 y 可能會丟失,因為 xy.coords(x, y) 用於構建坐標。

用法

text(x, ...)

## Default S3 method:
 text(x, y = NULL, labels = seq_along(x$x), adj = NULL,
     pos = NULL, offset = 0.5, vfont = NULL,
     cex = 1, col = NULL, font = NULL, ...)

參數

x , y

應寫入文本 labels 的坐標數值向量。如果xy的長度不同,則回收較短的一個。

labels

字符向量或 expression 指定要寫入的文本。嘗試通過 as.character 將其他語言對象(名稱和調用)強製為表達式,並將向量和其他分類對象強製為字符向量。如果 labelsxy 長,則坐標將被回收到 labels 的長度。

adj

中的一兩個值指定標簽的 x(以及可選的 y)調整 (‘justification’),其中 0 表示左/下,1 表示右/上,0.5 表示居中。在大多數設備上, 之外的值也適用。見下文。

pos

文本的位置說明符。如果指定,它將覆蓋任何給定的 adj 值。 1234 的值分別表示指定的 (x,y) 坐標的下方、左側、上方和右側的位置。

offset

當指定 pos 時,該值控製文本標簽距指定坐標的距離 (‘offset’),以字符寬度的分數表示。

vfont

NULL 表示當前字體係列,或長度為 2 的字符向量表示好時矢量字體。矢量的第一個元素選擇字體,第二個元素選擇樣式。如果 labels 是表達式,則忽略。

cex

數字字符擴展因子;乘以 par("cex") 得出最終字符大小。 NULLNA 相當於 1.0

col , font

要使用的顏色和(如果是 vfont = NULL )字體,可能是矢量。這些默認值為 par() 中的全局 graphical parameters 的值。

...

進一步graphical parameters(來自par),例如srtfamilyxpd

細節

labels 必須是 characterexpression 類型(或者可強製為此類類型)。在後一種情況下,可以使用相當多的數學符號,例如下標和上標、希臘字母、分數等。

adj 允許調整相對於 (x, y) 的文本位置。值 0、0.5 和 1 指定 (x, y) 應分別與文本的左/下、中和右/上對齊。默認值是居中文本,即 adj = c(0.5, NA) 。準確的垂直居中需要單個字符的字符度量信息,該信息僅在某些設備上可用。字符串和表達式的垂直對齊方式略有不同:adj = c(0,0) 表示 left-justify,並且在字符串的基線上對齊,但在表達式的邊界框底部對齊。這也會影響垂直居中:對於字符串,居中不包括任何下降符,而對於表達式,它包括它們。對字符串使用 NA 使其居中,包括下行部分。

posoffset 參數可以與 identify 返回的值結合使用,以重新創建交互式標記圖。

可以使用 graphical parameters srt 旋轉文本(請參閱 par )。當指定 adj 時,非零 srt 圍繞 (x, y) 旋轉標簽。如果指定 pos,則 srt 圍繞其邊界框上最接近 (x, y) 的點旋轉文本:頂部中心為 pos = 1 ,右側中心為 pos = 2 ,底部中心為 pos = 3 ,以及pos = 4 的左中心。 pos 接口對於旋轉文本沒有那麽有用,因為結果不再相對於 (x, y) 垂直或水平居中。目前graphics 包中沒有用於直接圍繞其中心旋轉文本的接口,但是可以通過同時擺弄adjsrt 來實現。

圖形參數 colcexfont 可以是向量,然後將循環應用於 labels(額外的值將被忽略)。 fontNA 值替換為 par("font")col 也類似。

圖中省略 xylabels 值為 NA 的標簽。

選擇font = 5(符號字體)時發生的情況可以是設備和locale-dependent。大多數情況下,labels 將在 Adobe 符號編碼中進行解釋,因此例如"d" 是 delta,"\300" 是 aleph。

歐元符號

歐元符號在舊字體中可能不可用。在當前版本的 Adobe 符號字體中,它是字符 160,因此text(x, y, "\xA0", font = 5)可能有效。在類 Unix 上使用西歐語言環境的人可能會選擇 ISO-8895-15 (Latin-9),其中歐元作為字符 165:這也可以用於postscriptpdf。這是 '⁠\u20ac⁠' 在 Unicode 中,可以在 UTF-8 語言環境中使用。

在 UTF-8 語言環境中,歐元應由 X11 正確呈現,但 postscriptpdf 中相應的單字節編碼需要選擇為 ISOLatin9.enc(並且字體需要包含歐元)字形,例如較舊的打印機可能沒有)。

例子

plot(-1:1, -1:1, type = "n", xlab = "Re", ylab = "Im")
K <- 16; text(exp(1i * 2 * pi * (1:K) / K), col = 2)

## The following two examples use latin1 characters: these may not
## appear correctly (or be omitted entirely).
plot(1:10, 1:10, main = "text(...) examples\n~~~~~~~~~~~~~~",
     sub = "R is GNU ©, but not ® ...")
mtext("«Latin-1 accented chars»: éè øØ å<Å æ<Æ", side = 3)
points(c(6,2), c(2,1), pch = 3, cex = 4, col = "red")
text(6, 2, "the text is CENTERED around (x,y) = (6,2) by default",
     cex = .8)
text(2, 1, "or Left/Bottom - JUSTIFIED at (2,1) by 'adj = c(0,0)'",
     adj = c(0,0))
text(4, 9, expression(hat(beta) == (X^t * X)^{-1} * X^t * y))
text(4, 8.4, "expression(hat(beta) == (X^t * X)^{-1} * X^t * y)",
     cex = .75)
text(4, 7, expression(bar(x) == sum(frac(x[i], n), i==1, n)))

## Two more latin1 examples
text(5, 10.2,
     "Le français, c'est facile: Règles, Liberté, Egalité, Fraternité...")
text(5, 9.8,
     "Jetz no chli züritüütsch: (noch ein bißchen Zürcher deutsch)")

參考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

Murrell, P. (2005) R Graphics. Chapman & Hall/CRC Press.

也可以看看

text.formula為公式方法; mtexttitleHershey 了解 Hershey 矢量字體的詳細信息,plotmath 了解數學注釋的詳細信息和更多示例。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Add Text to a Plot。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。