如果一个轴中的值范围很大,并且无法手动设置,我们如何每隔2个数字设置连续轴的中断?
p1 <- ggplot(mpg, aes(displ, hwy)) +
geom_point()
p1 + scale_x_continuous(breaks = c(2, 4, 6))
在?scale_x_continuous
帮助页面中,breaks
可以是(以及其他选项(
一个将极限作为输入并将中断作为输出的函数
scales
软件包提供breaks_width()
正是为了这个目的:
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
scale_x_continuous(breaks = scales::breaks_width(2))
下面是一个匿名函数,从(floored(最小值到(ceilinged(最大值的差值为2:
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
scale_x_continuous(breaks = (x) seq(floor(x[1]), ceiling(x[2]), by = 2))
或者,您仍然可以使用seq
进行更精细的控制、更可定制、更不通用:
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
scale_x_continuous(breaks = seq(2, 6, by = 2))