
I wrote an R package called ggbraid that extends the functionality of geom_ribbon() in ggplot2.
ggbraid provides a new stat, stat_braid(), that, when used with geom_ribbon(), correctly fills the area between two alternating series (drawn as lines or steps) with two different colors. ggbraid also provides a geom, geom_braid(), that wraps geom_ribbon() and uses stat_braid() by default.
Learn more at nsgrantham.github.io/ggbraid.