質問

私はggplot2で作成した素敵なfacet_wrap密度プロットを持っています。私の代わりに底部のみに沿って左側に沿ってY軸のラベルであり、xのラベルを有するとX軸とY軸のラベルを持つように、各パネルにたいです。私が今持っていることは、このようになります。

library(ggplot2)
myGroups <- sample(c("Mo", "Larry", "Curly"), 100, replace=T)
myValues <- rnorm(300)
df <- data.frame(myGroups, myValues)


p <- ggplot(df)  + 
  geom_density(aes(myValues), fill = alpha("#335785", .6)) + 
  facet_wrap(~ myGroups)
p

返します:


<サブ>(ソース: cerebralmastication.comする

これは簡単であるべきように思えるが、私のGoogleのフーは、答えを見つけるためにあまりにも貧しいてきました。

役に立ちましたか?

解決

あなたはfacet_wrap呼び出しでスケール=「自由」オプションを含めることで、これを行うことができます:

myGroups <- sample(c("Mo", "Larry", "Curly"), 100, replace=T)
myValues <- rnorm(300)
df <- data.frame(myGroups, myValues)


p <- ggplot(df)  + 
  geom_density(aes(myValues), fill = alpha("#335785", .6)) + 
  facet_wrap(~ myGroups, scales="free")
p

" ここに画像の説明を入力する

他のヒント

短い答え:あなたはそれを行うことはできません。これは、3つのグラフで意味をなさないかもしれませんが、あなたは32個のグラフの大きな格子を持っていたものか?それは騒々しいと悪いになります。 GGplotの哲学は、あなたが他のパッケージ限りのものをカスタマイズすることができないことを、当然、意味、カスタマイズを最小限に抑えて正しいことをやっている。

長い答え:あなたは3つの別々のggplotオブジェクトを構築し、それらを組み合わせることで、それ偽物でした。しかし、それは非常に一般的な解決策ではありません。ここでは、a、b、cのオブジェクトggplot作成したと仮定しハドレーの本からいくつかのコードです。これは、一番下の行におけるBおよびCと、一番上の行に置きます。

grid.newpage()
pushViewport(viewport(layout=grid.layout(2,2)))
vplayout<-function(x,y)
    viewport(layout.pos.row=x,layout.pos.col=y)
print(a,vp=vplayout(1,1:2))
print(b,vp=vplayout(2,1))
print(c,vp=vplayout(2,2))
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top