# text

##### Add Text to a Plot

`text`

draws the strings given in the vector `labels`

at the
coordinates given by `x`

and `y`

.
`y`

may be missing since `xy.coords(x, y)`

is used for
construction of the coordinates.

- Keywords
- aplot

##### Usage

```
text(x, ...)
"text" (x, y = NULL, labels = seq_along(x), adj = NULL, pos = NULL, offset = 0.5, vfont = NULL, cex = 1, col = NULL, font = NULL, ...)
```

##### Arguments

- x, y
- numeric vectors of coordinates where the text
`labels`

should be written. If the length of`x`

and`y`

differs, the shorter one is recycled. - labels
- a character vector or expression specifying
the
*text*to be written. An attempt is made to coerce other language objects (names and calls) to expressions, and vectors and other classed objects to character vectors by`as.character`

. If`labels`

is longer than`x`

and`y`

, the coordinates are recycled to the length of`labels`

. - adj
- one or two values in $[0, 1]$ which specify the x (and optionally y) adjustment of the labels. On most devices values outside that interval will also work.
- pos
- a position specifier for the text. If specified this
overrides any
`adj`

value given. Values of`1`

,`2`

,`3`

and`4`

, respectively indicate positions below, to the left of, above and to the right of the specified coordinates. - offset
- when
`pos`

is specified, this value gives the offset of the label from the specified coordinate in fractions of a character width. - vfont
`NULL`

for the current font family, or a character vector of length 2 for Hershey vector fonts. The first element of the vector selects a typeface and the second element selects a style. Ignored if`labels`

is an expression.- cex
- numeric
**c**haracter**ex**pansion factor; multiplied by`par("cex")`

yields the final character size.`NULL`

and`NA`

are equivalent to`1.0`

. - col, font
- the color and (if
`vfont = NULL`

) font to be used, possibly vectors. These default to the values of the global graphical parameters in`par()`

. - ...
- further graphical parameters (from
`par`

), such as`srt`

,`family`

and`xpd`

.

##### Details

`labels`

must be of type `character`

or
`expression`

(or be coercible to such a type).
In the latter case, quite a bit of
mathematical notation is available such as sub- and superscripts,
greek letters, fractions, etc.

`adj`

allows *adj*ustment of the text with respect to
`(x, y)`

.
Values of 0, 0.5, and 1 specify left/bottom, middle and
right/top alignment, respectively. The default is for centered text, i.e.,
`adj = c(0.5, NA)`

. Accurate vertical centering needs
character metric information on individual characters which is
only available on some devices. Vertical alignment is done slightly
differently for character strings and for expressions:
`adj = c(0,0)`

means to left-justify and to align on the baseline
for strings but on the bottom of the bounding box for expressions.
This also affects vertical centering: for strings the centering
excludes any descenders whereas for expressions it includes them.
Using `NA`

for strings centers them, including descenders.

The `pos`

and `offset`

arguments can be used in conjunction
with values returned by `identify`

to recreate an interactively
labelled plot.

Text can be rotated by using graphical parameters `srt`

(see `par`

); this rotates about the centre set by
`adj`

.

Graphical parameters `col`

, `cex`

and `font`

can be
vectors and will then be applied cyclically to the `labels`

(and
extra values will be ignored). `NA`

values of `font`

are
replaced by `par("font")`

, and similarly for `col`

.

Labels whose `x`

, `y`

or `labels`

value is `NA`

are omitted from the plot.

What happens when `font = 5`

(the symbol font) is selected can be
both device- and locale-dependent. Most often `labels`

will be
interpreted in the Adobe symbol encoding, so e.g. `"d"`

is delta,
and `"\300"`

is aleph.

##### Euro symbol

The Euro symbol was introduced relatively recently and may not be
available in older fonts. In recent versions of Adobe symbol fonts it
is character 160, so `text(x, y, "\xA0", font = 5)`

may work.
People using Western European locales on Unix-alikes can probably
select ISO-8895-15 (Latin-9) which has the Euro as character 165: this
can also be used for `postscript`

and `pdf`

.
It is \u20ac in Unicode, which can be used in UTF-8 locales.
unix The Euro should be rendered correctly by `X11`

in UTF-8
locales, but the corresponding single-byte encoding in
`postscript`

and `pdf`

will need to be selected
as `ISOLatin9.enc`

.
windows In all the European Windows encodings the Euro is symbol 128 and
\u20ac will work in all locales: however not all fonts will
include it. It is not in the symbol font used for
`windows`

and related devices, including the Windows printer.

##### References

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.

##### See Also

`text.formula`

for the formula method;
`mtext`

, `title`

,
`Hershey`

for details on Hershey vector fonts,
`plotmath`

for details and more examples on
mathematical annotation.

##### Examples

`library(graphics)`

```
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 façile: Règles, Liberté, Egalité, Fraternité...")
text(5, 9.8,
"Jetz no chli züritüütsch: (noch ein bißchen Zürcher deutsch)")
```

*Documentation reproduced from package graphics, version 3.0.3, License: Part of R 3.0.3*