@@ -43,7 +43,12 @@ facet_row <- function(facets, scales = "fixed", space = "fixed",
43
43
facet <- facet_wrap(facets , nrow = 1 , scales = scales , shrink = shrink , labeller = labeller , drop = drop , strip.position = strip.position )
44
44
params <- facet $ params
45
45
46
- params $ space_free <- space == ' free'
46
+ if (" space" %in% fn_fmls_names(facet_wrap )) {
47
+ params $ space_free <- list (x = space == ' free' , y = FALSE )
48
+ } else {
49
+ params $ space_free <- space == ' free'
50
+ }
51
+
47
52
ggproto(NULL , FacetRow , shrink = shrink , params = params )
48
53
}
49
54
# ' @rdname ggforce-extensions
@@ -53,7 +58,7 @@ facet_row <- function(facets, scales = "fixed", space = "fixed",
53
58
FacetRow <- ggproto(' FacetRow' , FacetWrap ,
54
59
draw_panels = function (self , panels , layout , x_scales , y_scales , ranges , coord , data , theme , params ) {
55
60
combined <- ggproto_parent(FacetWrap , self )$ draw_panels(panels , layout , x_scales , y_scales , ranges , coord , data , theme , params )
56
- if (params $ space_free ) {
61
+ if (isTRUE( params $ space_free ) ) {
57
62
widths <- vapply(layout $ PANEL , function (i ) diff(ranges [[i ]]$ x.range ), numeric (1 ))
58
63
panel_widths <- unit(widths , " null" )
59
64
combined $ widths [panel_cols(combined )$ l ] <- panel_widths
@@ -71,7 +76,11 @@ facet_col <- function(facets, scales = "fixed", space = "fixed",
71
76
facet <- facet_wrap(facets , ncol = 1 , scales = scales , shrink = shrink , labeller = labeller , drop = drop , strip.position = strip.position )
72
77
params <- facet $ params
73
78
74
- params $ space_free <- space == ' free'
79
+ if (" space" %in% fn_fmls_names(facet_wrap )) {
80
+ params $ space_free <- list (x = FALSE , y = space == ' free' )
81
+ } else {
82
+ params $ space_free <- space == ' free'
83
+ }
75
84
ggproto(NULL , FacetCol , shrink = shrink , params = params )
76
85
}
77
86
# ' @rdname ggforce-extensions
@@ -81,7 +90,7 @@ facet_col <- function(facets, scales = "fixed", space = "fixed",
81
90
FacetCol <- ggproto(' FacetCol' , FacetWrap ,
82
91
draw_panels = function (self , panels , layout , x_scales , y_scales , ranges , coord , data , theme , params ) {
83
92
combined <- ggproto_parent(FacetWrap , self )$ draw_panels(panels , layout , x_scales , y_scales , ranges , coord , data , theme , params )
84
- if (params $ space_free ) {
93
+ if (isTRUE( params $ space_free ) ) {
85
94
heights <- vapply(layout $ PANEL , function (i ) diff(ranges [[i ]]$ y.range ), numeric (1 ))
86
95
panel_heights <- unit(heights , " null" )
87
96
combined $ heights [panel_rows(combined )$ t ] <- panel_heights
0 commit comments