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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。