Skip to content

Commit 8a1eb23

Browse files
Merge pull request #411 from jread-usgs/data_frame
Data frame
2 parents a83420b + f6074e7 commit 8a1eb23

File tree

5 files changed

+32
-77
lines changed

5 files changed

+32
-77
lines changed

NAMESPACE

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ importFrom(stats,setNames)
7373
importFrom(utils,find)
7474
importFrom(utils,getFromNamespace)
7575
importFrom(utils,getS3method)
76-
importFrom(utils,head)
7776
importFrom(utils,packageName)
7877
importFrom(utils,tail)
7978
importFrom(yaml,yaml.load_file)

R/axis.R

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,7 @@ axis <- function(object, ...) {
6363
override("graphics", "axis", object, ...)
6464
}
6565

66-
#' @importFrom utils head
67-
axis.gsplot <- function(object, ..., n.minor=0, tcl.minor=0.15, reverse=NULL, append=FALSE) {
66+
axis.gsplot <- function(object, ..., n.minor=0, tcl.minor=0.15, reverse=NULL) {
6867

6968
fun.name <- "axis"
7069

@@ -77,25 +76,9 @@ axis.gsplot <- function(object, ..., n.minor=0, tcl.minor=0.15, reverse=NULL, ap
7776

7877
for(side in sides){
7978
# append the side and give it defaults if it doesn't exist
80-
8179
object <- modify_side(object, args = list(), side=side)
82-
which.axis <- which(names(object[[as.side_name(side)]])== 'axis')
83-
if (append){
84-
last.axis <- tail(which.axis, 1) # get the last one
85-
object[[as.side_name(side)]] <- append(object[[as.side_name(side)]],
86-
list('axis' = set_args('axis', side=side, package='graphics')),
87-
after = last.axis)
88-
object[[as.side_name(side)]][[last.axis+1]] <- append_replace(object[[as.side_name(side)]][[last.axis+1]], user_args[[fun.name]])
89-
} else {
90-
# remove
91-
if (length(which.axis) > 1){
92-
# remove all axis functions other than the first one
93-
object[[as.side_name(side)]] <- object[[as.side_name(side)]][-which.axis[!which.axis %in% head(which.axis, 1)]]
94-
}
95-
object[[as.side_name(side)]][['axis']] <- append_replace(object[[as.side_name(side)]][['axis']], user_args[[fun.name]])
96-
}
9780
object[[as.side_name(side)]][['usr.axes']] <- TRUE
98-
81+
object[[as.side_name(side)]][['axis']] <- append_replace(object[[as.side_name(side)]][['axis']], user_args[[fun.name]])
9982
if (!is.null(reverse)){
10083
object[[as.side_name(side)]][['reverse']] <- reverse
10184
}
@@ -106,19 +89,9 @@ axis.gsplot <- function(object, ..., n.minor=0, tcl.minor=0.15, reverse=NULL, ap
10689
}
10790

10891
draw_axis <- function(object, side.name){
109-
# method isn't made for multiple axis calls
110-
which.axis <- which(names(object[[side.name]]) == 'axis')
111-
if (length(which.axis) > 1){
112-
for (axis.i in which.axis){
113-
tmp <- object
114-
tmp[[side.name]] <- tmp[[side.name]][-which.axis[which.axis %in% axis.i]]
115-
draw_axis(tmp, side.name)
116-
}
117-
118-
}
11992
axis.args <- object[[side.name]][['axis']]
12093
side.lim <- object[[side.name]][['lim']]
121-
94+
12295
axis.args$at <- get_axTicks(object, as.side(side.name))
12396

12497
# need a cleaner way to extract the non-axis args (such as n.minor and tcl.minor)
@@ -139,7 +112,9 @@ draw_axis <- function(object, side.name){
139112
axis.args$n.minor <- NULL
140113
axis.args$tcl.minor <- NULL
141114

142-
do.call('Axis', axis.args)
115+
do.call('Axis', axis.args)
116+
117+
143118

144119
# Minor axis:
145120

@@ -175,4 +150,4 @@ draw_axis <- function(object, side.name){
175150
axis.args$tcl <- tcl
176151
do.call('Axis', axis.args)
177152
}
178-
}
153+
}

R/function_args.R

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,15 @@ function_args <- function(package, name, object, ..., use.default=paste0(name,'.
1414
params <- list(...)
1515

1616
if (!missing(object)) {
17-
if (!is.null(names(object)))
18-
params <- append(object, params)
19-
else {
20-
params <- append(list(object), params)
21-
}
17+
params <- append_params(object, params)
2218
} else {
23-
object = c() # replace w/ empty
19+
object=c()
2420
}
2521

2622
if (length(params) == 0)
2723
return(list())
2824

25+
2926
# // is there a method for this class?
3027
defFun <- getS3method(name,class(object),optional=TRUE) # will be NULL when object is missing
3128
if (is.null(defFun)){
@@ -58,4 +55,20 @@ function_args <- function(package, name, object, ..., use.default=paste0(name,'.
5855
return(params)
5956
}
6057

58+
append_params <- function(object, params){
59+
UseMethod('append_params')
60+
}
61+
62+
append_params.NULL <- function(object, params){
63+
params
64+
}
65+
66+
append_params.list <- function(object, params){
67+
append(object, params)
68+
}
69+
70+
append_params.default <- function(object, params){
71+
append(list(object), params)
72+
}
73+
6174
user_function_args <- function_args

tests/testthat/tests-axis.R

Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ test_that("axis gsplot",{
1717
expect_true(all(names(gs) %in% c("side.1", "side.2", "side.3", "view.1.2", "global")))
1818

1919
gs <- gsplot() %>%
20-
lines(1:5, c(1,10,100,1000,10000), log="y", axes=FALSE) %>%
21-
axis(side=c(2,4), labels=FALSE, n.minor=4)
20+
lines(1:5, c(1,10,100,1000,10000), log="y", axes=FALSE) %>%
21+
axis(side=c(2,4), labels=FALSE, n.minor=4)
2222

2323
expect_false(gs$side.1$axes)
2424
expect_false(gs$side.2$axes)
@@ -46,41 +46,6 @@ test_that("axis reverse",{
4646

4747
})
4848

49-
context('multiple axis on the same side can be used')
50-
test_that("axis can append a second one",{
51-
gs <- gsplot() %>%
52-
points(0:1,0:1) %>%
53-
axis(side=1, at=c(0.5,1)) %>%
54-
axis(side=1, at=c(0.25, 0.75), append=TRUE)
55-
expect_equal(sum(names(gs$side.1) == 'axis'), 2)
56-
})
57-
58-
test_that("axis can append a third one and the forth clears them",{
59-
gs <- gsplot() %>%
60-
points(0:1,0:1) %>%
61-
axis(side=1, at=c(0.5,1)) %>%
62-
axis(side=1, at=c(0.25, 0.75), append=TRUE) %>%
63-
axis(side=1, at=c(0.45, 0.55), append=TRUE)
64-
65-
expect_equal(sum(names(gs$side.1) == 'axis'), 3)
66-
gs <- gsplot() %>%
67-
points(0:1,0:1) %>%
68-
axis(side=1, at=c(0.5,1)) %>%
69-
axis(side=1, at=c(0.25, 0.75), append=TRUE) %>%
70-
axis(side=1, at=c(0.45, 0.55), append=TRUE) %>%
71-
axis(side=1, at=c(0.33))
72-
expect_equal(sum(names(gs$side.1) == 'axis'), 1)
73-
expect_equal(gs$side.1$axis$at, 0.33)
74-
})
75-
76-
test_that("axis tracks append FALSE by default",{
77-
gs <- gsplot() %>%
78-
points(0:1,0:1) %>%
79-
axis(side=1, at=c(0.5,1)) %>%
80-
axis(side=1, at=c(0.25, 0.75)) %>%
81-
axis(side=1, at=c(0.45, 0.55), append=TRUE)
82-
expect_equal(sum(names(gs$side.1) == 'axis'), 2)
83-
})
8449

8550
context("axis user flipped on")
8651

tests/testthat/tests-points.R

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@ test_that("graphics examples work", {
1010
lx <- seq(1, 5, length = 41)
1111
xy = xy.coords(x=10^lx,y=exp(-.5*lx^2))
1212
plot.xy(xy, type='p')
13-
13+
14+
plot(1,3)
15+
points(data.frame(1,2), col='red')
16+
1417
})
1518

1619
context("points arguments")

0 commit comments

Comments
 (0)