# ppoints

##### Ordinates for Probability Plotting

Generates the sequence of probability points
`(1:m - a)/(m + (1-a)-a)`

where `m`

is either `n`

, if `length(n)==1`

, or
`length(n)`

.

- Keywords
- distribution, arith, dplot

##### Usage

`ppoints(n, a = if(n `

##### Arguments

- n
either the number of points generated or a vector of observations.

- a
the offset fraction to be used; typically in \((0,1)\).

##### Details

If \(0 < a < 1\), the resulting values are within \((0,1)\)
(excluding boundaries).
In any case, the resulting sequence is symmetric in \([0,1]\), i.e.,
`p + rev(p) == 1`

.

`ppoints()`

is used in `qqplot`

and `qqnorm`

to generate
the set of probabilities at which to evaluate the inverse distribution.

The choice of `a`

follows the documentation of the function of the
same name in Becker *et al* (1988), and appears to have been
motivated by results from Blom (1958) on approximations to expect normal
order statistics (see also `quantile`

).

The probability points for the continuous sample quantile types 5 to 9
(see `quantile`

) can be obtained by taking `a`

as,
respectively, 1/2, 0, 1, 1/3, and 3/8.

##### References

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

Blom, G. (1958)
*Statistical Estimates and Transformed Beta Variables.*
Wiley

##### See Also

##### Examples

`library(stats)`

```
# NOT RUN {
ppoints(4) # the same as ppoints(1:4)
ppoints(10)
ppoints(10, a = 1/2)
## Visualize including the fractions :
require(graphics)
# }
# NOT RUN {
p.ppoints <- function(n, ..., add = FALSE, col = par("col")) {
pn <- ppoints(n, ...)
if(add)
points(pn, pn, col = col)
else {
tit <- match.call(); tit[[1]] <- quote(ppoints)
plot(pn,pn, main = deparse(tit), col=col,
xlim = 0:1, ylim = 0:1, xaxs = "i", yaxs = "i")
abline(0, 1, col = adjustcolor(1, 1/4), lty = 3)
}
if(!add && requireNamespace("MASS", quietly = TRUE))
text(pn, pn, as.character(MASS::fractions(pn)),
adj = c(0,0)-1/4, cex = 3/4, xpd = NA, col=col)
abline(h = pn, v = pn, col = adjustcolor(col, 1/2), lty = 2, lwd = 1/2)
}
p.ppoints(4)
p.ppoints(10)
p.ppoints(10, a = 1/2)
p.ppoints(21)
p.ppoints(8) ; p.ppoints(8, a = 1/2, add=TRUE, col="tomato")
# }
```

*Documentation reproduced from package stats, version 3.6.0, License: Part of R 3.6.0*