Consider the following: ``` r huron <- data.frame(year = 1875:1972, level = as.vector(LakeHuron)) library(plyr) # to access round_any huron$decade <- round_any(huron$year, 10, floor) huron$diff <- huron$year - huron$decade p1 <- ggplot(data = huron, aes(fill = factor(decade))) + geom_ribbon(aes(x = diff, ymin = level-0.1, ymax = level+0.1)) p1 ```  However the [plotly result](https://plot.ly/~cpsievert/262) is:  Also, ``` r p2 <- ggplot(data = huron, aes(colour = factor(decade))) + geom_ribbon(aes(x = diff, ymin = level-0.1, ymax = level+0.1)) p2 ```  And the plotly result is the same as before... @tdhock suggested [here](https://github.com/ropensci/plotly/issues/190#issuecomment-83040426) that we treat ribbons as a special case of polygons (as he has done with [geom_rect](https://github.com/ropensci/plotly/pull/178))