@@ -94,28 +94,52 @@ axis.gsplot <- function(object, ..., n.minor=0, tcl.minor=NA, reverse=NULL, appe
9494 user.args [[fun.name ]]$ tcl.minor <- tcl.minor
9595
9696 user.args [[fun.name ]] <- append_replace(user.args [[fun.name ]], args $ option.args )
97+ view.info <- view_info(object )
9798
9899 for (side in sides ){
99100 # append the side and give it defaults if it doesn't exist
101+
102+ side.name <- as.side_name(side )
103+ object <- modify_side(object , args = list (), side = side )
104+
100105 if (! append ){
101- object <- modify_side(object , args = list (), side = side )
106+
107+ which.axis <- which(names(object [[side.name ]])== ' axis' )
108+ if (length(which.axis ) > 1 ){
109+ object [[side.name ]] <- object [[side.name ]][- which.axis [2 : length(which.axis )]]
110+ }
111+
112+ object [[side.name ]][[fun.name ]] <- append_replace(object [[as.side_name(side )]][[fun.name ]], user.args [[fun.name ]])
113+ } else {
114+
115+ user.args $ axis <- c(side = side , user.args $ axis )
116+ object [[side.name ]] <- c(object [[side.name ]],user.args )
102117 }
118+
119+ object [[side.name ]][[' usr.axes' ]] <- TRUE
103120
104- object [[as.side_name(side )]][[' usr.axes' ]] <- TRUE
105- object [[as.side_name(side )]][[' axis' ]] <- append_replace(object [[as.side_name(side )]][[' axis' ]], user.args [[fun.name ]])
106121 if (! is.null(reverse )){
107- object [[as.side_name(side )]][[' reverse' ]] <- reverse
122+ object [[side.name ]][[' reverse' ]] <- reverse
123+ }
124+
125+ class(object ) <- ' gsplot'
126+
127+ if (! is.null(view.info ) && length(views_with_side(object , side )) == 0 ){
128+ if (side %% 2 == 1 ){ # odd
129+ object <- view(object , side = c(side , view.info $ y [1 ]), log = view.info $ log [1 ])
130+ } else { # even
131+ object <- view(object , side = c(view.info $ x [1 ], side ), log = view.info $ log [1 ])
132+ }
108133 }
134+
109135 }
110136
111- class(object ) <- ' gsplot'
137+ # class(object) <- 'gsplot'
112138 return (object )
113139
114140}
115141
116142draw_axis <- function (object , side.name ){
117-
118-
119143 # method isn't made for multiple axis calls
120144 which.axis <- which(names(object [[side.name ]]) == ' axis' )
121145 if (length(which.axis ) > 1 ){
@@ -124,8 +148,8 @@ draw_axis <- function(object, side.name){
124148 tmp [[side.name ]] <- tmp [[side.name ]][- which.axis [which.axis %in% axis.i ]]
125149 draw_axis(tmp , side.name )
126150 }
151+
127152 }
128-
129153 axis.args <- object [[side.name ]][[' axis' ]]
130154 side.lim <- object [[side.name ]][[' lim' ]]
131155
@@ -142,15 +166,14 @@ draw_axis <- function(object, side.name){
142166
143167 tcl <- NULL
144168 if (exists(' tcl.minor' ,axis.args )){
145- tcl <- ifelse(is.na(axis.args $ tcl.minor ), par(' tcl' )* 0.5 , axis.args $ tcl.minor )
169+ tcl <- axis.args $ tcl.minor
170+
146171 }
147172
148173 axis.args $ n.minor <- NULL
149174 axis.args $ tcl.minor <- NULL
150175
151- do.call(' Axis' , axis.args )
152-
153-
176+ do.call(' Axis' , axis.args )
154177
155178 # Minor axis:
156179
@@ -186,4 +209,4 @@ draw_axis <- function(object, side.name){
186209 axis.args $ tcl <- tcl
187210 do.call(' Axis' , axis.args )
188211 }
189- }
212+ }
0 commit comments