diff --git a/R/guide-bins.R b/R/guide-bins.R index e2bd0db428..d1856a69ed 100644 --- a/R/guide-bins.R +++ b/R/guide-bins.R @@ -154,7 +154,7 @@ GuideBins <- ggproto( key$.show <- NA labels <- scale$get_labels(breaks) - if (is.character(scale$labels) || is.numeric(scale$labels)) { + if (is.character(scale$labels) || is.numeric(scale$labels) || is.expression(scale$labels)) { limit_lab <- c(NA, NA) } else { limit_lab <- scale$get_labels(limits) @@ -169,6 +169,9 @@ GuideBins <- ggproto( } else { key$.show[nrow(key)] <- TRUE } + if (is.expression(labels)) { + labels <- as.list(labels) + } key$.label <- labels key <- vec_slice(key, !is.na(oob_censor_any(key$.value))) @@ -258,7 +261,7 @@ GuideBins <- ggproto( list(labels = flip_element_grob( elements$text, - label = key$.label, + label = validate_labels(key$.label), x = unit(key$.value, "npc"), margin_x = FALSE, margin_y = TRUE, diff --git a/R/guide-colorsteps.R b/R/guide-colorsteps.R index 52b6e1809d..2df02cd972 100644 --- a/R/guide-colorsteps.R +++ b/R/guide-colorsteps.R @@ -114,7 +114,11 @@ GuideColoursteps <- ggproto( } else { key$.value <- breaks } - key$.label <- scale$get_labels(breaks) + labels <- scale$get_labels(breaks) + if (is.expression(labels)) { + labels <- as.list(labels) + } + key$.label <- labels if (breaks[1] %in% limits) { key$.value <- key$.value - 1L