2012-05-14 4 views
5

私はfacet_gridが好きで、よくgeom_histogramでそれを使用しています。私はmargins=foo引数も好きです。集計されたグループと比較してすべてのディストリビューションを見ることができます。問題は、すべてのデータを持っているので、マージンを含めると、すべてのグループを広げて、マージンの通常よりも広い範囲のスケールに合わせることです。これは、集計されたすべてのグループのスケールがはるかに広く、グループ間の違いを見つけるのが難しいことを意味します。だから私は自分自身に言う:あなたはスケール引数でこれを修正し、yを変えることができます "この解決策の問題は、今は集計されたグループをすべて比較するのが難しいということです。マージンが自由に持っているが、スケールは無料ではありませんけれども、他のすべてがあるかのように制約すること。このことは可能ですか?ggplot2フリーマージンは残りの部分を拘束します

私は私が何を意味するかを証明するためにここにコードや写真を提示します。これは、お問い合わせください明確でない場合。

#create some data 
set.seed(10) 
dat <- data.frame(var1=rpois(1000, 20), 
    var2=as.factor(sample(LETTERS[1:4], 1000, replace=T)), 
    var3=as.factor(sample(month.abb[1:5], 1000, replace=T))) 

ggplot(dat, aes(var1)) + 
geom_histogram() + 
facet_grid(var2~var3) 

はここでそれからプロットだ。私は彼らのYスケールが同じであるので、私は簡単にすべて集約されたスコアを比較できるようにそれを好む。しかし、余白やDIS-集計histograがあると便利ではないでしょうmsと比較することもできます。よし

enter image description here

ggplot(dat, aes(var1)) + 
geom_histogram() + 
facet_grid(var2~var3, margins='var2') 

ので、私たちは中margins引数を入れて、今、私たちは比較することができますが、すべての集約グループのヒストグラムを20に伸ばしている、それは(下の画像を参照)難しいそれらを比較することができます。さて、scalesを無料にしましょう。データはかなり均等に彼は私が使用されるが、実際の生活の中でいくつかの細胞はわずか数のカウントなどがたくさんあるし、比較がさらに悪化している必要があり方法をサンプリングintを配布されてこの例では、恐ろしいではありません

enter image description here

ggplot(dat, aes(var1)) + 
geom_histogram() + 
facet_grid(var2~var3, margins='var2', scales="free_y") 

ここでは、スケールは無料です。問題は実際に集計された得点では無料であり、それらを比較することは問題がある(1つが14ish、8ishが1つ、7ishが1つ)。

enter image description here

だからmarginsが自由にできるようにする方法はありますか?基本的に私が望むのは、最初の図形を作成し、2番目の図形からマージンをスプライスすることです。

+0

関連する[機能要求](https://github.com/hadley/ggplot2/issues/187)がありますが、これはいいとは言えませんが、これは簡単で実装が簡単です。 – joran

+0

@joranこれに基づいて機能のリクエストを行うべきですか?もしそうなら、どうやってそうするのですか? –

答えて

1

この回避策はその間に機能しますか?繰り返される見出しがありますが、x目盛りとラベルは削除できます。

require(ggplot2) 
require(gridExtra) 
set.seed(10) 
dat <- data.frame(var1=rpois(1000, 20), 
        var2=as.factor(sample(LETTERS[1:4], 1000, replace=T)), 
        var3=as.factor(sample(month.abb[1:5], 1000, replace=T))) 
dat$var4 <- "All" 

windows(width=8, height=8) 

p1 <- ggplot(dat, aes(var1)) + 
    geom_histogram() + 
    facet_grid(var2~var3) + 


p2 <- ggplot(dat, aes(var1)) + 
    geom_histogram() + 
    facet_grid(~var3) 


grid.arrange(p1, p2, nrow=2, heights=c(4,1.5)) 

enter image description here

あなたはおそらくすでにscale_x_continuous('', breaks = NA)との最初のプロットから、xスケールおよびラベルをドロップする方法を知っています。

関連する問題