Skip to content

Commit d54a403

Browse files
committed
rename range() function of coord to backtransform_range()
1 parent 74eb2b4 commit d54a403

9 files changed

+23
-8
lines changed

R/coord-.r

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,12 @@ Coord <- ggproto("Coord",
7373
)
7474
},
7575

76-
range = function(panel_params) {
77-
return(list(x = panel_params$x.range, y = panel_params$y.range))
76+
# transform range given in transformed coordinates
77+
# back into range in given in (possibly scale-transformed)
78+
# data coordinates
79+
backtransform_range = function(panel_params) {
80+
warning("range backtransformation not implemented in this coord; plot may be wrong.")
81+
list(x = panel_params$x.range, y = panel_params$y.range)
7882
},
7983

8084
setup_panel_params = function(scale_x, scale_y, params = list()) {

R/coord-cartesian-.r

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@ CoordCartesian <- ggproto("CoordCartesian", Coord,
8383
dist_euclidean(x, y) / max_dist
8484
},
8585

86+
backtransform_range = function(panel_params) {
87+
list(x = panel_params$x.range, y = panel_params$y.range)
88+
},
89+
8690
transform = function(data, panel_params) {
8791
rescale_x <- function(data) rescale(data, from = panel_params$x.range)
8892
rescale_y <- function(data) rescale(data, from = panel_params$y.range)

R/coord-flip.r

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ CoordFlip <- ggproto("CoordFlip", CoordCartesian,
4444
CoordCartesian$transform(data, panel_params)
4545
},
4646

47-
range = function(panel_params) {
47+
backtransform_range = function(panel_params) {
4848
list(x = panel_params$y.range, y = panel_params$x.range)
4949
},
5050

R/coord-munch.r

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ coord_munch <- function(coord, data, range, segment_length = 0.01) {
1515
if (coord$is_linear()) return(coord$transform(data, range))
1616

1717
# range has theta and r values; get corresponding x and y values
18-
ranges <- coord$range(range)
18+
ranges <- coord$backtransform_range(range)
1919

2020
# Convert any infinite locations into max/min
2121
# Only need to work with x and y because for munching, those are the

R/coord-polar.r

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ CoordPolar <- ggproto("CoordPolar", Coord,
9090
dist_polar(r, theta)
9191
},
9292

93-
range = function(self, panel_params) {
93+
backtransform_range = function(self, panel_params) {
9494
setNames(
9595
list(panel_params$theta.range, panel_params$r.range),
9696
c(self$theta, self$r)

R/coord-transform.r

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,13 @@ CoordTrans <- ggproto("CoordTrans", Coord,
119119
dist_euclidean(self$trans$x$transform(x), self$trans$y$transform(y)) / max_dist
120120
},
121121

122+
backtransform_range = function(self, panel_params) {
123+
list(
124+
x = self$trans$x$inverse(panel_params$x.range),
125+
y = self$trans$y$inverse(panel_params$y.range)
126+
)
127+
},
128+
122129
transform = function(self, data, panel_params) {
123130
trans_x <- function(data) transform_value(self$trans$x, data, panel_params$x.range)
124131
trans_y <- function(data) transform_value(self$trans$y, data, panel_params$y.range)

R/geom-abline.r

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ geom_abline <- function(mapping = NULL, data = NULL,
111111
#' @export
112112
GeomAbline <- ggproto("GeomAbline", Geom,
113113
draw_panel = function(data, panel_params, coord) {
114-
ranges <- coord$range(panel_params)
114+
ranges <- coord$backtransform_range(panel_params)
115115

116116
data$x <- ranges$x[1]
117117
data$xend <- ranges$x[2]

R/geom-hline.r

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ geom_hline <- function(mapping = NULL, data = NULL,
3737
#' @export
3838
GeomHline <- ggproto("GeomHline", Geom,
3939
draw_panel = function(data, panel_params, coord) {
40-
ranges <- coord$range(panel_params)
40+
ranges <- coord$backtransform_range(panel_params)
4141

4242
data$x <- ranges$x[1]
4343
data$xend <- ranges$x[2]

R/geom-vline.r

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ geom_vline <- function(mapping = NULL, data = NULL,
3737
#' @export
3838
GeomVline <- ggproto("GeomVline", Geom,
3939
draw_panel = function(data, panel_params, coord) {
40-
ranges <- coord$range(panel_params)
40+
ranges <- coord$backtransform_range(panel_params)
4141

4242
data$x <- data$xintercept
4343
data$xend <- data$xintercept

0 commit comments

Comments
 (0)