いくつかのサンプルデータ:異なるファセットに異なるスケール制限を設定するにはどうすればよいですか?
dfr <- data.frame(
x = rep.int(1:10, 2),
y = runif(20),
g = factor(rep(letters[1:2], each = 10))
)
2つのファセットを有する単純な散布:
p + scale_y_continuous(limits = c(0.2, 0.8))
(又はこれのラッパーと
p <- ggplot(dfr, aes(x, y)) +
geom_point() +
facet_wrap(~ g, scales = "free_y")
私はすべてのパネルの軸の範囲を設定することができlike ylim
)
しかし、どのようにdi異なるファセットの異なる軸の制限?
それを行うためのlatticey方法は、例えば、
p + scale_y_continuous(limits = list(c(0.2, 0.8), c(0, 0.5)))
は、残念ながらそれはちょうどggplot2の場合のエラーをスローし、この引数にリストを渡すことであろう。
EDIT:
は、ここで部分的にハックです。スケールの範囲を拡張する場合は、制限を指定してデータセットに列を追加し、geom_blank
で描画します。
修正データセット:
dfr <- data.frame(
x = rep.int(1:10, 2),
y = runif(20),
g = factor(rep(letters[1:2], each = 10)),
ymin = rep(c(-0.6, 0.3), each = 10),
ymax = rep(c(1.8, 0.5), each = 10)
)
更新プロット:
p + geom_blank(aes(y = ymin)) + geom_blank(aes(y = ymax))
今すぐスケールが異なっていて、左手1が正しいです。残念ながら、右手の尺度は、ポイントのためのスペースを作る必要があるので、収縮しません。
助けになる場合は、「scale_y_continuous
を明示的に呼び出すことなく、スケールを再計算せずにポイントを描画することは可能ですか?」と言い換えることができます。
リンクありがとうございます。私が望んでいた答えではありません。 –
@Ritchie:Hadleyにチェックをして、彼はggplot2の開発版 –