8

この前のポスターのように、私はgeom_textgglot2のプロットに注釈を付けるためにも使用しています。そして、これらの注釈をデータ座標ではなく相対座標(ファセットHとWの比率)に配置したいと思います。ほとんどのプロットで十分簡単ですが、私の場合はヒストグラムを扱っています。yスケールに関する関連情報は、(追加後の)プロットオブジェクトのどこかに潜んでいるはずですが、どこにあるのかgeom_histogramわかりません。

私の質問:ファセットされたggplot2オブジェクトから最大バーの高さを読み取るにはどうすればよいgeom_histogramですか?誰か助けてもらえますか?

4

1 に答える 1

5

これを試して:

library(plyr)
library(scales)

p <- ggplot(mtcars, aes(mpg)) + geom_histogram(aes(y = ..density..)) + facet_wrap(~am)
r <- print(p)
# in data coordinate
(dc <- dlply(r$data[[1]], .(PANEL), function(x) max(x$density)))
(mx <- dlply(r$data[[1]], .(PANEL), function(x) x[which.max(x$density), ]$x))

# add annotation (see figure below)
p + geom_text(aes(x, y, label = text), 
  data = data.frame(x = unlist(mx), y = unlist(dc), text = LETTERS[1:2], am = 0:1),
  colour = "red", vjust = 0)


# scale range
(yr <- llply(r$panel$ranges, "[[", "y.range"))
# in relative coordinates
(rc <- mapply(function(d, y) rescale(d, from = y), dc, yr))

ここに画像の説明を入力してください

于 2012-10-10T21:41:21.557 に答える