Skip to content

Commit 324e055

Browse files
teunbrandthomasp85
authored andcommitted
flip justification along with angle (#5600)
1 parent 73b959a commit 324e055

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

R/coord-radial.R

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ CoordRadial <- ggproto("CoordRadial", Coord,
233233
data$y <- rescale(data$r * cos(data$theta) + 0.5, from = bbox$y)
234234

235235
if (self$rotate_angle && "angle" %in% names(data)) {
236-
data$angle <- flip_text_angle(data$angle - rad2deg(data$theta))
236+
data <- flip_data_text_angle(data)
237237
}
238238

239239
data
@@ -528,6 +528,23 @@ flip_text_angle <- function(angle) {
528528
angle
529529
}
530530

531+
flip_data_text_angle <- function(data) {
532+
if (!all(c("angle", "theta") %in% names(data))) {
533+
return(data)
534+
}
535+
angle <- (data$angle - rad2deg(data$theta)) %% 360
536+
flip <- angle > 90 & angle < 270
537+
angle[flip] <- angle[flip] + 180
538+
data$angle <- angle
539+
if ("hjust" %in% names(data)) {
540+
data$hjust[flip] <- 1 - data$hjust[flip]
541+
}
542+
if ("vjust" %in% names(data)) {
543+
data$vjust[flip] <- 1 - data$vjust[flip]
544+
}
545+
data
546+
}
547+
531548

532549
theta_grid <- function(theta, element, donut = c(0, 0.4),
533550
bbox = list(x = c(0, 1), y = c(0, 1))) {

0 commit comments

Comments
 (0)