使用する場合:
facet_grid(SomeGroup ~, scales="free_y")
スケールを「無料」にしたいが、最も近い整数に丸めたいと指定することは可能ですか?
どんな援助も大歓迎です。
スケールで関数をとることができることを考えると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())
ここで何かが足りないかもしれませんが、私はこのようなことをします。
library(ggplot2)
ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
facet_grid(am+cyl~., scales="free_y", space = "free_y") +
scale_y_continuous(breaks = seq(0, 40, 2), expand = c(0, 1))