Ответ 1
Учитывая, что breaks
в масштабах может принимать функцию, я бы предположил, что вы можете обернуть алгоритм основного разбиения в функцию, которая не позволяет нецелые числа.
Начните с примера:
ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
facet_grid(am+cyl~., scales="free_y")
Взглянув на то, как scales::pretty_breaks
объединяется, создайте функцию, которая обертывает ее и позволяет только целое разбиение:
library("scales")
integer_breaks <- function(n = 5, ...) {
breaker <- pretty_breaks(n, ...)
function(x) {
breaks <- breaker(x)
breaks[breaks == floor(breaks)]
}
}
Теперь используйте функцию, которая возвращается как функция breaks
в шкале
ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
facet_grid(am+cyl~., scales="free_y") +
scale_y_continuous(breaks = integer_breaks())