2424# ' gs <- gsplot() %>%
2525# ' points(y=c(3,1,2), x=1:3, xlim=c(0,NA),ylim=c(0,NA)) %>%
2626# ' axis(side=c(4), labels=FALSE) %>%
27- # ' axis(side=c(1,3), n.minor=4, labels=FALSE )
27+ # ' axis(side=c(1,3), n.minor=4)
2828# ' gs
2929# '
3030# ' gs <- gsplot() %>%
3131# ' points(1:10, 1:10) %>%
32- # ' axis(1, at = seq(0,10,by=0.1),labels=FALSE, tcl=0.15)
32+ # ' axis(1, at = seq(0,10,by=0.1),labels=FALSE, tcl=0.15) %>%
33+ # ' axis(2, reverse=TRUE)
3334# ' gs
3435# '
3536# ' gs <- gsplot() %>%
3637# ' points(1:5, c(1,10,100,1000,10000), log="y", las=1) %>%
37- # ' axis(side=c(2,4), labels=FALSE, n.minor=4)
38+ # ' axis(side=c(2,4), n.minor=4)
3839# ' gs
40+ # '
3941# ' gs <- gsplot() %>%
4042# ' lines(1:5, c(1,10,100,1000,10000), log="y", axes=FALSE) %>%
4143# ' axis(side=c(2,4), labels=FALSE, n.minor=4)
4244# ' gs
45+ # '
46+ # ' gs <- gsplot(xaxs='r', yaxs='r') %>%
47+ # ' lines(1:5, c(1,10,100,1000,10000), log="y", xaxt='n') %>%
48+ # ' axis(side=c(2,4), labels=FALSE, n.minor=4)
49+ # ' gs
50+ # '
51+ # ' gs <- gsplot() %>%
52+ # ' points(runif(30, 1,5), runif(30,0.5,3.5)) %>%
53+ # ' axis(side=1, at=seq(1,5,by=0.25),las=3) %>%
54+ # ' axis(side=c(3,4), labels=FALSE)
55+ # ' gs
56+ # '
57+ # ' usrDef <- gsplot(mar=c(4,4,4,4)) %>%
58+ # ' points(x=1, y=2, side=c(3,2), cex=3, xlab='cat',log='x') %>%
59+ # ' points(x=3:10,y=4:11, side=c(1,2), log='y')
60+ # ' usrDef
4361axis <- function (object , ... ) {
4462 override(" graphics" , " axis" , object , ... )
4563}
@@ -69,10 +87,11 @@ axis.gsplot <- function(object, ..., n.minor=0, tcl.minor=0.15, reverse=NULL) {
6987}
7088
7189draw_axis <- function (gsplot ) {
72-
73- for ( index in which(names( gsplot ) %in% " axis " ) ){
90+
91+ draw_axis_execute <- function ( axisParams , n.minor ){
7492 axisParams <- gsplot [[index ]][[' arguments' ]]
7593 n.minor <- gsplot [[index ]][[' gs.config' ]]$ n.minor
94+
7695 if (n.minor == 0 ){
7796 axis(axisParams )
7897 } else {
@@ -81,14 +100,36 @@ draw_axis <- function(gsplot) {
81100 # Minor axis:
82101 at <- axTicks(axisParams $ side )
83102 newAT <- c()
103+
104+ if (axisParams $ side %% 2 == 0 ){
105+ logScale <- par()$ ylog
106+ } else {
107+ logScale <- par()$ xlog
108+ }
109+
110+ if (logScale ){
111+ spacing <- median(diff(log10(at )))
112+ at <- c(10 ^ (log10(at [1 ])- spacing ),at ,10 ^ (log10(at [length(at )])+ spacing ))
113+ } else {
114+ spacing <- median(diff(at ))
115+ at <- c(at [1 ]- spacing ,at ,at [length(at )]+ spacing )
116+ }
117+
84118 for (i in 2 : length(at )){
85119 newAT <- c(newAT , seq(at [i - 1 ], length.out = n.minor , by = (at [i ]- at [i - 1 ])/ n.minor ))
86120 }
121+
87122 axisParams $ at <- newAT
88123 axisParams $ tcl <- gsplot [[index ]][[' gs.config' ]]$ tcl.minor
89124 axisParams $ labels <- FALSE
90125 axis(axisParams )
91126 }
92-
93127 }
128+
129+ for (index in which(names(gsplot ) %in% " axis" )){
130+ axisParams <- gsplot [[index ]][[' arguments' ]]
131+ n.minor <- gsplot [[index ]][[' gs.config' ]]$ n.minor
132+ draw_axis_execute(axisParams , n.minor )
133+ }
134+
94135}
0 commit comments