@@ -24,12 +24,18 @@ calc_views <- function(gsplot){
2424 return (views )
2525}
2626
27+ which_views <- function (gsplot ){
28+ grep(' view.' , names(gsplot ))
29+ }
30+
2731views <- function (gsplot ){
28- gsplot [names (gsplot ) %in% ' view ' ]
32+ gsplot [which_views (gsplot )]
2933}
3034
3135non_views <- function (gsplot ){
32- gsplot [! names(gsplot ) %in% ' view' ]
36+ non.views <- gsplot
37+ non.views [which_views(non.views )] <- NULL
38+ return (non.views )
3339}
3440
3541group_views <- function (gsplot ){
@@ -50,7 +56,9 @@ group_views <- function(gsplot){
5056 views [[v.i ]] <- append(views [[v.i ]], to_draw )
5157 views [[v.i ]][[' window' ]][[' par' ]] <- append_replace(views [[v.i ]][[' window' ]][[' par' ]], tail.gs [[' gs.config' ]][[' par' ]])
5258 } else {
53- views <- append(views , list (view = append(to_draw , list (window = list (side = add_sides ,par = tail.gs [[' gs.config' ]][[' par' ]])))))
59+ new.view <- list (append(to_draw , list (window = list (side = add_sides ,par = tail.gs [[' gs.config' ]][[' par' ]])))) %> %
60+ setNames(sprintf(' view.%s.%s' ,add_sides [1 ],add_sides [2 ]))
61+ views <- append(views , new.view )
5462 }
5563 } else {
5664 # // if field isn't associated with a side(s), it is moved up to top level (e.g., legend)
@@ -88,7 +96,7 @@ which_reals <- function(values, na.value){
8896
8997}
9098set_view_window <- function (views , param , na.value = NA , remove = TRUE , ignore = NULL ){
91- view_i <- which(names( views ) %in% " view " )
99+ view_i <- which_views( views )
92100 for (i in view_i ){
93101 values <- lapply(views [[i ]][! names(views [[i ]]) %in% ignore ], function (x ) strip_pts(x , param ))
94102 val.i <- which_reals(values , na.value )
@@ -117,16 +125,18 @@ set_view_lab <- function(views){
117125
118126
119127set_view_lim <- function (views ){
128+ y.include <- c(' y' ,' y1' ,' y0' ,' ytop' ,' ybottom' )
129+ x.include <- c(' x' ,' x1' ,' x0' ,' xleft' ,' xright' )
120130 views <- set_view_window(views , param = ' xlim' , na.value = NA , ignore = ' window' , remove = FALSE )
121131 views <- set_view_window(views , param = ' ylim' , na.value = NA , ignore = ' window' , remove = FALSE )
122132
123- data <- list (y = summarize_args(views ,c( ' y ' , ' y1 ' , ' y0 ' ), ignore = c(' window' ,' gs.config' )),
124- x = summarize_args(views ,c( ' x ' , ' x1 ' , ' x0 ' ), ignore = c(' window' ,' gs.config' )))
133+ data <- list (y = summarize_args(views , y.include , ignore = c(' window' ,' gs.config' )),
134+ x = summarize_args(views , x.include , ignore = c(' window' ,' gs.config' )))
125135
126- axs <- list (yaxs = summarize_args(views ,c(' yaxs' ),ignore = c(' gs.config' )),
127- xaxs = summarize_args(views ,c(' xaxs' ),ignore = c(' gs.config' )))
136+ axs <- list (yaxs = summarize_args(views , c(' yaxs' ), ignore = c(' gs.config' )),
137+ xaxs = summarize_args(views , c(' xaxs' ), ignore = c(' gs.config' )))
128138
129- definedSides <- unlist(c_unname(views ),recursive = FALSE )
139+ definedSides <- unlist(c_unname(views ), recursive = FALSE )
130140 definedSides <- unique(unname(unlist(definedSides [grep(" side" , names(definedSides ))])))
131141
132142 for (param in c(' y' ,' x' )){
@@ -192,15 +202,15 @@ views_with_side <- function(views, side){
192202 if (length(side ) > 1 )
193203 stop(' side can only be length of 1' )
194204 with.side = lapply(views , function (x ) any(x [[' window' ]][[' side' ]] %in% side ))
195- view.match = unname(unlist(with.side [names( with.side ) == ' view ' ]))
205+ view.match = unname(unlist(with.side [which_views( views ) ]))
196206 if (is.null(view.match ) || ! any(view.match ))
197207 return (NULL )
198208 else
199209 return (which(view.match ))
200210}
201211
202212get_view_side <- function (views , view_i , param ){
203- i = which(names( views ) %in% ' view ' )[view_i ]
213+ i = which_views( views )[view_i ]
204214 sides <- views [[i ]][[' window' ]][[' side' ]]
205215 if (param == ' y' )
206216 return (sides [which(sides %% 2 == 0 )])
@@ -210,9 +220,9 @@ get_view_side <- function(views, view_i, param){
210220 stop(' view side undefined for ' ,param )
211221}
212222
213- summarize_args <- function (views , param , na.value ,ignore = ' gs.config' ){
223+ summarize_args <- function (views , param , na.value , ignore = ' gs.config' ){
214224
215- view_i <- which(names( views ) %in% " view " )
225+ view_i <- which_views( views )
216226 values <- list ()
217227 for (i in view_i ){
218228 x <- views [[i ]][! names(views [[i ]]) %in% ignore ]
@@ -254,7 +264,7 @@ set_window <- function(list){
254264 listOut <- list
255265 pars <- list [[' par' ]]
256266
257- for (j in which(names( list ) == " view " )){
267+ for (j in which_views( list )){
258268
259269 window <- list [[j ]][[' window' ]]
260270 plots <- list [[j ]]
0 commit comments