19

使用する場合:

facet_grid(SomeGroup ~, scales="free_y") 

スケールを「無料」にしたいが、最も近い整数に丸めたいと指定することは可能ですか?

どんな援助も大歓迎です。

4

2 に答える 2

32

スケールで関数をとることができることを考えると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())

ここに画像の説明を入力してください

于 2012-05-11T23:39:58.753 に答える
8

ここで何かが足りないかもしれませんが、私はこのようなことをします。

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))

ここに画像の説明を入力してください

于 2012-05-12T08:27:30.780 に答える