@@ -62,6 +62,10 @@ GeomRibbon <- ggproto("GeomRibbon", Geom,
6262
6363 required_aes = c(" x" , " ymin" , " ymax" ),
6464
65+ setup_data = function (data , params ) {
66+ transform(data [order(data $ PANEL , data $ group , data $ x ), ], y = ymin )
67+ },
68+
6569 draw_key = draw_key_polygon ,
6670
6771 handle_na = function (data , params ) {
@@ -70,7 +74,7 @@ GeomRibbon <- ggproto("GeomRibbon", Geom,
7074
7175 draw_group = function (data , panel_params , coord , na.rm = FALSE ) {
7276 if (na.rm ) data <- data [stats :: complete.cases(data [c(" x" , " ymin" , " ymax" )]), ]
73- data <- data [order(data $ group , data $ x ), ]
77+ data <- data [order(data $ group ), ]
7478
7579 # Check that aesthetics are constant
7680 aes <- unique(data [c(" colour" , " fill" , " size" , " linetype" , " alpha" )])
@@ -137,6 +141,6 @@ GeomArea <- ggproto("GeomArea", GeomRibbon,
137141 required_aes = c(" x" , " y" ),
138142
139143 setup_data = function (data , params ) {
140- transform(data , ymin = 0 , ymax = y )
144+ transform(data [order( data $ PANEL , data $ group , data $ x ), ] , ymin = 0 , ymax = y )
141145 }
142146)
0 commit comments