Consider the following:
huron<-data.frame(year=1875:1972, level= as.vector(LakeHuron))
library(plyr) # to access round_anyhuron$decade<- round_any(huron$year, 10, floor)
huron$diff<-huron$year-huron$decadep1<- 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 is:

Also,
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 that we treat ribbons as a special case of polygons (as he has done with geom_rect)
Consider the following:
However the plotly result is:
Also,
And the plotly result is the same as before...
@tdhock suggested here that we treat ribbons as a special case of polygons (as he has done with geom_rect)