同じデータから 2 つ以上のヒストグラムをプロットしたいのですが、次のように 1 つのグループの座標を反転させます。
(注: この図は、Grossman et al 2011 から取得したものです。複数のシグナルの合成により、正の選択の領域における因果的バリアントが区別されます)
たとえば、ggplot2 からダイヤモンド データセットを取得してみましょう。
> library(ggplot2)
> head(diamonds)
carat cut color clarity depth table price x y z
1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43
2 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31
3 0.23 Good E VS1 56.9 65 327 4.05 4.07 2.31
4 0.29 Premium I VS2 62.4 58 334 4.20 4.23 2.63
5 0.31 Good J SI2 63.3 58 335 4.34 4.35 2.75
6 0.24 Very Good J VVS2 62.8 57 336 3.94 3.96 2.48
私が試したアプローチの 1 つは、プロットせずに stat_bin を使用してヒストグラムを計算し、それによって返される counts 列の値を変更することでした。
> my_sb <-stat_bin(data=diamonds, mapping=aes(x=x)
stat_bin のドキュメントによると、この関数はマップされたものと等しい data.frame を返す必要がありますが、4 つの新しい列 (count、density、ncount、ndensity) が追加されます。ただし、これらの列はどこにも見つかりません。
# I supposed that this should contain a count, density columns, but it does not.
> print(head(my_sb$data))
carat cut color clarity depth table price x y z
1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43
2 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31
3 0.23 Good E VS1 56.9 65 327 4.05 4.07 2.31
4 0.29 Premium I VS2 62.4 58 334 4.20 4.23 2.63
5 0.31 Good J SI2 63.3 58 335 4.34 4.35 2.75
6 0.24 Very Good J VVS2 62.8 57 336 3.94 3.96 2.48
別の可能なアプローチは、scale_y_reverse() を使用することですが、それを単一のデータセットに適用する方法がわかりません。
私が考えることができる 3 番目のアプローチは、viewPorts を使用することですが、それを実装する方法についてはよくわかりません。