r-在ggplot的连续轴中设置值之间的间隔



如果一个轴中的值范围很大,并且无法手动设置,我们如何每隔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))

最新更新