Here is a plotrix solution:
set.seed(0815) x <- 1:10 F <- runif(10,1,2) L <- runif(10,0,1) U <- runif(10,2,3) require(plotrix) plotCI(x, F, ui=U, li=L)
And here is a ggplot solution:
set.seed(0815) df <- data.frame(x =1:10, F =runif(10,1,2), L =runif(10,0,1), U =runif(10,2,3)) require(ggplot2) ggplot(df, aes(x = x, y = F)) + geom_point(size = 4) + geom_errorbar(aes(ymax = U, ymin = L))
UPDATE: Here is a base solution to your edits:
set.seed(1234) x <- rnorm(20) df <- data.frame(x = x, y = x + rnorm(20)) plot(y ~ x, data = df) # model mod <- lm(y ~ x, data = df) # predicts + interval newx <- seq(min(df$x), max(df$x), length.out=100) preds <- predict(mod, newdata = data.frame(x=newx), interval = 'confidence') # plot plot(y ~ x, data = df, type = 'n') # add fill polygon(c(rev(newx), newx), c(rev(preds[ ,3]), preds[ ,2]), col = 'grey80', border = NA) # model abline(mod) # intervals lines(newx, preds[ ,3], lty = 'dashed', col = 'red') lines(newx, preds[ ,2], lty = 'dashed', col = 'red')