2012-02-12 5 views
1

facet_gridggplot2は、Y軸に表示される値の範囲を自動的に定義します。 scale = "free_y"を使用する場合、値の範囲はファセットによって異なる場合があります。表示するファセット固有のY軸範囲を定義することは可能ですか? - GGPLOT2

ユーザは、scale_y_continuousを使用して、Y軸に表示される値の範囲を自分自身で定義することもできます。しかし、その場合、範囲はすべてのファセットで同じになります。

私の質問です:ユーザーがファセット固有のY軸範囲を定義する方法はありますか?

ggplot2を指示する方法はありますのファセットの変数が2つの値(A及びB)を取り、Yの値はAおよびBの20と100との間に0〜10の範囲であると仮定するAの場合は0〜5、Bの場合は20〜50のY値のみを表示します。または、より複雑な場合は、ggplot2に、A(デフォルト)のすべてのY値を表示するように指示しますが、B?

格子で、パネル固有のY軸範囲を定義することは、プレパネルを使用して可能です。私はこれが可能かどうか疑問に思っていたggplot2

PS:プロットを実行する前に表示するY値を選択することに興味はありませんが、表示時のみです。

答えて

2

私はこれ自体を行うためにggplot2を指示する方法を知りませんが、単にあなたのデータをサブセット化することにより、同じ効果を自分で達成するためにひどく難しいことではありません。

#Sample data matching your description 
dat <- data.frame(x = runif(100), 
        y = c(runif(50,0,10),runif(50,20,100)), 
        grp = rep(LETTERS[1:2],each = 50)) 

#Plotting everything      
ggplot(dat) + 
    facet_wrap(~grp,scales = "free_y") + 
    geom_point(aes(x = x,y = y)) 

#Plotting only 0-5 in grp A, 20-50 in grp B  
ggplot(subset(dat,(grp == 'A' & y <= 5) | (grp == 'B' & y >= 20 & y <= 50))) + 
    facet_wrap(~grp,scales = "free_y") + 
    geom_point(aes(x = x,y = y)) 
関連する問題