There were already some solutions for you. If you stay with the base package, you should familiarize yourself with the functions plot(), lines(), abline(), points(), polygon(), segments(), rect(), box(), arrows(), ... Take a look at their help files.
You should see the graph from the base package in the form of a panel with the coordinates that you gave it. On this panel, you can draw a whole set of objects with the above functions. They allow you to plot as you want. You must remember that if you are not playing with parameters such as that shown by Dr. G, every call to plot () gives you a new panel. Also keep in mind that things can be plotted over other things, so think about the order you use to create the plots.
See for example:
set.seed(100) x <- 1:10 y <- x^2 y2 <- x^3 yse <- abs(runif(10,2,4)) plot(x,y, type = "n") # type="n" only plots the pane, no curves or points. # plots the area between both curves polygon(c(x,sort(x,decreasing=T)),c(y,sort(y2,decreasing=T)),col="grey") # plot both curves lines(x,y,col="purple") lines(x, y2, col = "red") # add the points to the first curve points(x, y, col = "black") # adds some lines indicating the standard error segments(x,y,x,y+yse,col="blue") # adds some flags indicating the standard error arrows(x,y,x,y-yse,angle=90,length=0.1,col="darkgreen")
This gives you:
