Вот решение, использующее функцию полигона для выполнения заливки. Это должно быть расширено для более общего решения для обработки большего количества точек и переменного верхнего предела.
boundary12 <- c(0.01, 0.005, 0.002, 0.001)
boundary23 <- c(0.1, 0.05, 0.02, 0.01)
boundary34 <- c(0.5, 0.6, 0.7, 0.55)
plot(boundary12, type="lines", ylim=c(0,1), xlab="Pollution level", ylab="Probability of event")
lines(boundary23)
lines(boundary34)
#create polygons and fill
polygon(x=c(1:4, 4:1), y=c(boundary12, rev(boundary23)), col="blue")
polygon(x=c(1:4, 4:1), y=c(boundary23, rev(boundary34)), col="yellow")
polygon(x=c(1:4, 4,1 ), y=c(boundary34, c(1,1)), col="green")