@@ -98,7 +98,7 @@ layer <- function(geom = NULL, stat = NULL,
98
98
data = NULL , mapping = NULL ,
99
99
position = NULL , params = list (),
100
100
inherit.aes = TRUE , check.aes = TRUE , check.param = TRUE ,
101
- show.legend = NA , key_glyph = NULL , layer_class = Layer ) {
101
+ show.legend = NA , key_glyph = NULL , layout = NULL , layer_class = Layer ) {
102
102
call_env <- caller_env()
103
103
user_env <- caller_env(2 )
104
104
@@ -132,7 +132,7 @@ layer <- function(geom = NULL, stat = NULL,
132
132
geom_params <- params [intersect(names(params ), geom $ parameters(TRUE ))]
133
133
stat_params <- params [intersect(names(params ), stat $ parameters(TRUE ))]
134
134
135
- ignore <- c(" key_glyph" , " name" )
135
+ ignore <- c(" key_glyph" , " name" , " layout " )
136
136
all <- c(geom $ parameters(TRUE ), stat $ parameters(TRUE ), geom $ aesthetics(), position $ aesthetics(), ignore )
137
137
138
138
# Take care of plain patterns provided as aesthetic
@@ -192,7 +192,8 @@ layer <- function(geom = NULL, stat = NULL,
192
192
position = position ,
193
193
inherit.aes = inherit.aes ,
194
194
show.legend = show.legend ,
195
- name = params $ name
195
+ name = params $ name ,
196
+ layout = layout %|| % params $ layout
196
197
)
197
198
}
198
199
@@ -280,6 +281,7 @@ Layer <- ggproto("Layer", NULL,
280
281
} else {
281
282
self $ computed_mapping <- self $ mapping
282
283
}
284
+ attr(data , " layout" ) <- self $ layout
283
285
284
286
data
285
287
},
0 commit comments