2012-05-11 9 views

答えて

29

スケールでbreaksが機能する場合、非整数を許可しない関数で基本的な分割アルゴリズムをラップすることができると思います。例と

スタート:scales::pretty_breaksが一緒に置かれているかを見てみると

ggplot(mtcars, aes(wt, mpg)) + 
geom_point() + 
facet_grid(am+cyl~., scales="free_y") 

enter image description here

、それをラップ機能を作成し、整数だけが突破できます

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

enter image description here

+0

+1素敵な、私はどうもありがとうございました、スケールがこれは素晴らしいです機能 – baptiste

+0

を取ることができることに気づいていませんでした。私もpretty_breaksについて知りませんでしたので、それを参考にして参考にしてください。 – MikeTP

7

私はここで何かが欠けているかもしれないが、私はこのような何かをするだろう。

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

enter image description here

+0

ありがとうございます。 Brian Diggs anwserでは事前に知っておく必要はありませんが、ブレークを設定する場所を事前に知っていれば、あなたのソリューションはうまく動作すると思います。私はあなたの助けに感謝し、私はあなたのanwserの使用を発見しました:sp​​ace = "free_y"とexpand = c(0、1)は、それらの特徴を認識していないので、特に有益です。 – MikeTP

関連する問題