library(tidyverse)
mpg2 <- mpg %>% mutate(hwy = hwy - 30)
ggplot(mpg2, aes(cty, hwy)) +
geom_point() +
facet_grid(year ~ fl, scales = "free") +
scale_y_continuous(expand = expand_scale(mult = 2))
在上面的代码块中,我想同时做三件事:
(-)
负y轴标签(在我的示例中,您需要删除-40
,-30
和-60
标签)。我只希望显示零和正标签。 scales = "free"
我该怎么做?
答案 0 :(得分:2)
在这种情况下,我们可以将函数传递给scale_y_continuous
中的breaks参数,该函数返回长度为2的数字矢量。
library(ggplot2); library(dplyr)
mpg2 <- mpg %>% mutate(hwy = hwy - 30)
my_breaks <- function(x) c(0, (((max(x) / 2) %/% 10) + 1) * 10)
函数输出0
和(((max(x) / 2) %/% 10) + 1) * 10
给出OP所需的输出。上限是y
的最大值除以2
,然后向上舍入到10
的下一个较大倍数。
示例
my_breaks(67)
# [1] 0 40
情节
ggplot(mpg2, aes(cty, hwy)) +
geom_point() +
facet_grid(year ~ fl, scales = "free") +
scale_y_continuous(expand = expand_scale(mult = 2),
breaks = my_breaks)