6

ggplot2 グラフで変換されたデータを取得できるかどうか疑問に思っていましたか? 特に、ドット プロットの点の座標とサイズを取得して、別のプロット ライブラリ ( d3.js) で使用することに関心があります。どうすればその情報を抽出できますか?

プロットは次のとおりです。

g=ggplot(data.frame(x=rnorm(100)), aes(x = x)) + geom_dotplot()

を使用して元のデータを取得できるようg$dataになりましたが、変換されたデータ (プロット内の点の座標) が必要です。

ありがとう!

4

1 に答える 1

9

データを使用ggplot_buildしてから抽出します。これを試して:

gg <- ggplot_build(g)

結果のオブジェクトはリストであり、最初の要素には目的のデータが含まれています。

str(gg, max.level=1)
List of 3
 $ data :List of 1
 $ panel:List of 5
  ..- attr(*, "class")= chr "panel"
 $ plot :List of 8
  ..- attr(*, "class")= chr "ggplot"

これは次のようになります。

head(gg$data[[1]])
  y         x  binwidth count ncount     width PANEL group countidx stackpos      xmin      xmax ymin ymax
1 0 -2.070496 0.1356025     1  0.125 0.1356025     1     1        1      0.5 -2.138297 -2.002695    0    1
2 0 -1.781799 0.1356025     2  0.250 0.1356025     1     1        1      0.5 -1.849600 -1.713998    0    1
3 0 -1.781799 0.1356025     2  0.250 0.1356025     1     1        2      1.5 -1.849600 -1.713998    0    1
4 0 -1.619960 0.1356025     1  0.125 0.1356025     1     1        1      0.5 -1.687761 -1.552159    0    1
5 0 -1.403223 0.1356025     6  0.750 0.1356025     1     1        1      0.5 -1.471024 -1.335422    0    1
6 0 -1.403223 0.1356025     6  0.750 0.1356025     1     1        2      1.5 -1.471024 -1.335422    0    1

PS。私の知る限り、この機能はggplot2バージョン 0.9.0でのみ利用可能になりました

于 2012-08-31T15:53:50.333 に答える