|
5 | 5 | # @param position of axis (top, bottom, left or right) |
6 | 6 | # @param range of data values |
7 | 7 | guide_axis <- function(at, labels, position = "right", theme) { |
8 | | - if (length(at) == 0) |
9 | | - return(zeroGrob()) |
10 | | - |
11 | | - at <- unit(at, "native") |
| 8 | + line <- switch(position, |
| 9 | + top = element_render(theme, "axis.line.x.top", c(0, 1), c(0, 0), id.lengths = 2), |
| 10 | + bottom = element_render(theme, "axis.line.x.bottom", c(0, 1), c(1, 1), id.lengths = 2), |
| 11 | + right = element_render(theme, "axis.line.y.right", c(0, 0), c(0, 1), id.lengths = 2), |
| 12 | + left = element_render(theme, "axis.line.y.left", c(1, 1), c(0, 1), id.lengths = 2) |
| 13 | + ) |
12 | 14 | position <- match.arg(position, c("top", "bottom", "right", "left")) |
13 | 15 |
|
14 | 16 | zero <- unit(0, "npc") |
15 | 17 | one <- unit(1, "npc") |
16 | 18 |
|
| 19 | + if (length(at) == 0) { |
| 20 | + vertical <- position %in% c("left", "right") |
| 21 | + return(absoluteGrob( |
| 22 | + gList(line), |
| 23 | + width = if (vertical) zero else one, |
| 24 | + height = if (vertical) one else zero |
| 25 | + )) |
| 26 | + } |
| 27 | + |
| 28 | + at <- unit(at, "native") |
| 29 | + |
17 | 30 | theme$axis.ticks.length.x.bottom <- with( |
18 | 31 | theme, |
19 | 32 | axis.ticks.length.x.bottom %||% |
@@ -71,12 +84,7 @@ guide_axis <- function(at, labels, position = "right", theme) { |
71 | 84 | right = , |
72 | 85 | left = element_render(theme, label_render, labels, y = label_y, margin_x = TRUE)) |
73 | 86 |
|
74 | | - line <- switch(position, |
75 | | - top = element_render(theme, "axis.line.x.top", c(0, 1), c(0, 0), id.lengths = 2), |
76 | | - bottom = element_render(theme, "axis.line.x.bottom", c(0, 1), c(1, 1), id.lengths = 2), |
77 | | - right = element_render(theme, "axis.line.y.right", c(0, 0), c(0, 1), id.lengths = 2), |
78 | | - left = element_render(theme, "axis.line.y.left", c(1, 1), c(0, 1), id.lengths = 2) |
79 | | - ) |
| 87 | + |
80 | 88 |
|
81 | 89 | nticks <- length(at) |
82 | 90 |
|
|
0 commit comments