A slight modification to polygon with quality of life improvements to make it easier to add colored confidence intervals to a plot. Default values are taken for all polygon arguments, except for border, which is set to NA. Additionally, an alpha argument has been added to accommodate partially transparent confidence intervals. Any of the input values can be overwritten within this function's call.

ribbon(
  x,
  y,
  density = NULL,
  angle = 45,
  border = NA,
  col = NA,
  lty = par("lty"),
  ...,
  fillOddEven = FALSE,
  alpha = NULL
)

Arguments

Details

If y is a two column data.frame or matrix, ribbon will convert y to a vector such that y = c(y[,1], rev(y[,2])) in order to create the lower and upper bounds of the polygon. Additionally, when y is a two column data.frame or matrix, x can have the same length as the number of rows in y, and ribbon will concatenate the reverse of the vector x to ensure it has equal length.

Examples

if (FALSE) {
   # Load data
   data(cars)
   # fit model
   m1 <- lm(
     dist ~ speed,
     data = cars
   )
   # make predictions
   preds <- predict(
     m1, 
     newdata = data.frame(speed = 10:25),
     interval = "confidence"
   )
   # base plot
   blank(
     xlim = c(10,25),
     ylim = c(15,120),
     xlab = "Speed",
     ylab = "Stopping distance",
     xaxt = "s",
     yaxt = "s",
     bty = "l",
     las = 1
   )
   # add 95% confidence interval
   ribbon(
     x=10:25,
     y=preds[,c("lwr","upr")],
     col = "purple",
     alpha = 0.5
   )
   # add mean prediction
   lines(
     x=10:25,
     y = preds[,"fit"],
     lwd =2,
     col = "purple"
   )
   # add data
   points(
     x = cars$speed,
     y = cars$dist,
     pch = 16
   )
}