@@ -62,6 +62,10 @@ GeomRibbon <- ggproto("GeomRibbon", Geom,
62
62
63
63
required_aes = c(" x" , " ymin" , " ymax" ),
64
64
65
+ setup_data = function (data , params ) {
66
+ transform(data [order(data $ PANEL , data $ group , data $ x ), ], y = ymin )
67
+ },
68
+
65
69
draw_key = draw_key_polygon ,
66
70
67
71
handle_na = function (data , params ) {
@@ -70,7 +74,7 @@ GeomRibbon <- ggproto("GeomRibbon", Geom,
70
74
71
75
draw_group = function (data , panel_params , coord , na.rm = FALSE ) {
72
76
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 ), ]
74
78
75
79
# Check that aesthetics are constant
76
80
aes <- unique(data [c(" colour" , " fill" , " size" , " linetype" , " alpha" )])
@@ -137,6 +141,6 @@ GeomArea <- ggproto("GeomArea", GeomRibbon,
137
141
required_aes = c(" x" , " y" ),
138
142
139
143
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 )
141
145
}
142
146
)
0 commit comments