6

facet_wrap()を使用して、共通の凡例を共有するグラフ上にいくつかのプロットを取得しようとしています。プロットには、それぞれgeom_density()を使用して作成された4つの密度推定値が含まれています。これは、データがどのように見えるかの最小限の例です。推定量のレベルごとに1つの密度が推定され、xpの値ごとに異なるプロットが描画されます。

    > esti
    estimator      value           xp
1      OLS Oracle 0.35757317 N= 10 T= 100
2      OLS Oracle 0.50540655 N= 10 T= 100
3        OLS Full 0.02276872 N= 10 T= 100
4        OLS Full 0.53616020 N= 10 T= 100
5           Lasso 0.00000000 N= 10 T= 100
6           Lasso 0.30448578 N= 10 T= 100
7  Adaptive Lasso 0.00000000 N= 10 T= 100
8  Adaptive Lasso 0.49949267 N= 10 T= 100
9      OLS Oracle 0.48392914 N= 10 T= 500
10     OLS Oracle 0.53685915 N= 10 T= 500
11       OLS Full 0.50565482 N= 10 T= 500
12       OLS Full 0.61407003 N= 10 T= 500
13          Lasso 0.38342782 N= 10 T= 500
14          Lasso 0.52012928 N= 10 T= 500
15 Adaptive Lasso 0.47951875 N= 10 T= 500
16 Adaptive Lasso 0.53222172 N= 10 T= 500

4つの密度で1つのプロットを作成できます。

library('ggplot2')
ggplot(data=esti,aes(x=value,colour=estimator)) + geom_density()

または、それぞれに1つの密度を持つ2つのパネル:

ggplot(data=esti,aes(x=value)) + geom_density() +facet_wrap(~xp,scales='free_y')

ただし、この2つを一緒に使用しても機能せず、エラーが発生します。

> ggplot(data=esti,aes(x=value,colour=estimator)) + geom_density() +facet_wrap(~xp,scales='free_y')
Error in UseMethod("scale_dimension") : 
  no applicable method for 'scale_dimension' applied to an object of class "NULL"

スケールに異なる値を試したり、完全に省略したりしましたが、運がありませんでした。どのオブジェクトが「scale_dimension」に適用されているかを追跡しようとしましたが、運もありませんでした。誰かが私を啓発できますか?

4

1 に答える 1

2

私はジョランの提案を2番目にするためにコメントを残すことができないので(つまり、私は十分な評判を持っていません)、ここで答えがあります:

から行くことによって

 ggplot(data=esti,aes(x=value,colour=estimator)) + geom_density()

 ggplot(data=esti,aes(x=value,colour=estimator))
 + geom_density() +facet_wrap(~xp,scales='free_y')

各推定量/xpペアに対して2つのデータポイントのみが残ります。どうやら、これは密度を計算するのに十分ではありません。たとえば、次のコード行は機能します(注data=rbind(esti,esti)

ggplot(data=rbind(esti,esti),aes(x=value,colour=estimator))
+ geom_density() +facet_wrap(~xp,scales='free_y')

また、に置き換えると動作しgeom_densityますgeom_bar

ggplot(data=esti,aes(x=value,colour=estimator))
+ geom_bar() +facet_wrap(~xp,scales='free_y')
于 2013-04-22T02:45:15.517 に答える