
Last chance! 50% off unlimited learning
Sale ends in
points
is a generic function to draw a sequence of points at
the specified coordinates. The specified character(s) are plotted,
centered at the coordinates.points(x, ...)## S3 method for class 'default':
points(x, y = NULL, type = "p", \dots)
type
s as in plot.default
.pch
are stored internally as integers. The
interpretation is
NA_integer_
: no symbol.0:18
: S-compatible vector symbols.19:25
: furtherRvector symbols.26:31
: unused (and ignored).32:127
: ASCII characters.128:255
native charactersonly in a
single-byte locale and for the symbol font. (128:159
are
only used on Windows.)-32 ...
Unicode code point (where supported).1
, 10
,
13
and 16
use circles. The filled shapes 15:18
do not include a border. The following Rplotting symbols are can be obtained with
pch = 19:25
: those with 21:25
can be colored and
filled with different colors: col
gives the border color
and bg
the background color
pch = 19
: solid circle,pch = 20
: bullet (smaller solid circle,
2/3 the size of19
),pch = 21
: filled circle,pch = 22
: filled square,pch = 23
: filled diamond,pch = 24
: filled triangle point-up,pch = 25
: filled triangle point down.pdf
). The difference between pch = 16
and pch = 19
is that the
latter uses a border and so is perceptibly larger when lwd
is
large relative to cex
.
Values pch = 26:31
are currently unused and pch = 32:127
give the ASCII characters. In a single-byte locale
pch = 128:255
give the corresponding character (if any) in
the locale's character set. Where supported by the OS, negative
values specify a Unicode code point, so e.g.-0x2642L
is a -0x20ACL
is the Euro.
A character string consisting of a single character is converted to an
integer: 32:127
for ASCII characters, and usually to the
Unicode code point otherwise. (In non-Latin-1 single-byte locales,
128:255
will be used for 8-bit characters.)
If pch
supplied is a logical, integer or character
NA
or an empty character string the point is omitted from
the plot.
If pch
is NULL
or otherwise of length 0,
par("pch")
is used.
If the symbol font (par(font = 5)
) is used, numerical
values should be used for pch
: the range is
c(32:126, 160:254)
in all locales (but 240
is not
defined (used for 160
, Euro, may
not be present).
x
and y
components), a two-column matrix, a
time series, .... See xy.coords
. If supplied
separately, they must be of the same length. Graphical parameters commonly used are
[object Object],[object Object],[object Object],[object Object],[object Object]
Others less commonly used are lty
and lwd
for
types such as "b"
and "l"
.
The graphical parameters pch
, col
, bg
,
cex
and lwd
can be vectors (which will be recycled as
needed) giving a value for each point plotted. If lines are to be
plotted (e.g., for type = "b"
) the first element of lwd
is used.
Points whose x
, y
, pch
, col
or cex
value is NA
are omitted from the plot.
points.formula
for the formula method;
plot
, lines
, and the underlying
workhorse function plot.xy
.require(stats) # for rnorm
plot(-4:4, -4:4, type = "n") # setting up coord. system
points(rnorm(200), rnorm(200), col = "red")
points(rnorm(100)/2, rnorm(100)/2, col = "blue", cex = 1.5)
op <- par(bg = "light blue")
x <- seq(0, 2*pi, len = 51)
## something "between type='b' and type='o'":
plot(x, sin(x), type = "o", pch = 21, bg = par("bg"), col = "blue", cex = .6,
main = 'plot(..., type="o", pch=21, bg=par("bg"))')
par(op)
## The figure was produced by calls like
png("pch.png", height = 0.7, width = 7, res = 100, units = "in")
par(mar = rep(0,4))
plot(c(-1, 26), 0:1, type = "n", axes = FALSE)
text(0:25, 0.6, 0:25, cex = 0.5)
points(0:25, rep(0.3, 26), pch = 0:25, bg = "grey")
##-------- Showing all the extra & some char graphics symbols ---------
pchShow <-
function(extras = c("*",".", "o","O","0","+","-","|","%","#"),
cex = 3, ## good for both .Device=="postscript" and "x11"
col = "red3", bg = "gold", coltext = "brown", cextext = 1.2,
main = paste("plot symbols : points (... pch = *, cex =",
cex,")"))
{
nex <- length(extras)
np <- 26 + nex
ipch <- 0:(np-1)
k <- floor(sqrt(np))
dd <- c(-1,1)/2
rx <- dd + range(ix <- ipch %/% k)
ry <- dd + range(iy <- 3 + (k-1)- ipch %% k)
pch <- as.list(ipch) # list with integers & strings
if(nex > 0) pch[26+ 1:nex] <- as.list(extras)
plot(rx, ry, type = "n", axes = FALSE, xlab = "", ylab = "", main = main)
abline(v = ix, h = iy, col = "lightgray", lty = "dotted")
for(i in 1:np) {
pc <- pch[[i]]
## 'col' symbols with a 'bg'-colored interior (where available) :
points(ix[i], iy[i], pch = pc, col = col, bg = bg, cex = cex)
if(cextext > 0)
text(ix[i] - 0.3, iy[i], pc, col = coltext, cex = cextext)
}
}
pchShow()
pchShow(c("o","O","0"), cex = 2.5)
pchShow(NULL, cex = 4, cextext = 0, main = NULL)
## ------------ test code for various pch specifications -------------
# Try this in various font families (including Hershey)
# and locales. Use sign = -1 asserts we want Latin-1.
# Standard cases in a MBCS locale will not plot the top half.
TestChars <- function(sign = 1, font = 1, ...)
{
MB <- l10n_info()$MBCS
r <- if(font == 5) { sign <- 1; c(32:126, 160:254)
} else if(MB) 32:126 else 32:255
if (sign == -1) r <- c(32:126, 160:255)
par(pty = "s")
plot(c(-1,16), c(-1,16), type = "n", xlab = "", ylab = "",
xaxs = "i", yaxs = "i",
main = sprintf("sign = %d, font = %d", sign, font))
grid(17, 17, lty = 1) ; mtext(paste("MBCS:", MB))
for(i in r) try(points(i%%16, i%/%16, pch = sign*i, font = font,...))
}
TestChars()
try(TestChars(sign = -1))
TestChars(font = 5) # Euro might be at 160 (0+10*16).
# Mac OS has apple at 240 (0+15*16).
try(TestChars(-1, font = 2)) # bold
Run the code above in your browser using DataLab