diff --git a/R/geom-ribbon.r b/R/geom-ribbon.r index 2735fae254..fb292cb0fa 100644 --- a/R/geom-ribbon.r +++ b/R/geom-ribbon.r @@ -63,7 +63,12 @@ GeomRibbon <- ggproto("GeomRibbon", Geom, required_aes = c("x", "ymin", "ymax"), setup_data = function(data, params) { - transform(data[order(data$PANEL, data$group, data$x), ], y = ymin) + if (is.null(data$ymin) && is.null(data$ymax)) { + stop("Either ymin or ymax must be given as an aesthetic.", call. = FALSE) + } + data <- data[order(data$PANEL, data$group, data$x), , drop = FALSE] + data$y <- data$ymin %||% data$ymax + data }, draw_key = draw_key_polygon,