2016-11-11 10 views
1

私はggplot2の探索を開始しましたが、現在頻繁に使用するaesオブジェクトについては理解していません。私はこの問題を解決するためにいくつかの方法を試しましたが、うまくいきませんでした。どんな助けでも大歓迎です! weightsを表示し、分類されたデータフレームのスタック領域プロットを取得する方法は?

> ggplotframe[1:8,] 
    gamma weights assets 
1 0.002 0.25  1 
2 0.002 0.25  2 
3 0.002 0.25  3 
4 0.002 0.25  4 
5 0.004 0.25  1 
6 0.004 0.25  2 
7 0.004 0.25  3 
8 0.004 0.25  4 

は今、私が積み上げ面グラフをプロットしたい:

だから、私はこのようになります、私はプロットの目的のために特別に分類したデータフレームを、持っています各assetについては、gammaが変化します。この例では4つのアセットがあるので、各アセットごとに1つずつ、それぞれのガンマ値に対して4つの異なる加重値があり、それらは数百の値を超えてテストされます。

gg <- ggplot(ggplotframe, aes(x=gamma, y=weights)) 
gg <- gg + geom_area(aes(colour=assets, fill=assets)) 
gg 

しかし、この場合には、コンソールにエラーが点滅します:

は今、私が試してみましたアプローチの一つであるError in f(...) : Aesthetics can not vary with a ribbon。この問題を解決するにはどうすればよいですか?

+0

アセットを因子に変えてみてください。今は1つの領域を作成しようとしており、その領域の色と塗りつぶしを連続変数で変更する必要があると考えており、ggplotはそれをサポートしていません。 – Axeman

+0

ありがとう、@アックスマン!しかし、私は他のソート方法のためにデータフレームを使用しているので、以下に引用された答えは私のためにはうまくいく。 :) –

+0

ええ、それは同じです。 – Axeman

答えて

0

アセットの列を要素の明示的なものにする必要はありませんが、にfactor()を約fillと置くことで、ggplotの呼び出しで行うことができます。

gg <- ggplot(ggplotframe, aes(x = gamma, y = weights)) 
gg <- gg + geom_area(aes(colour = factor(assets), fill = factor(assets))) 
gg 
+0

あなたが満足している場合は、これを答えとして受け入れることを忘れないでください。 –

+0

私は別の質問があります。指定された数以上の資産について、私は次のエラーが発生します。美学は、長さ1またはデータ(3493):色、塗りつぶし、x、yのいずれかでなければなりません。どのようにこの問題を解決するための任意のアイデア? –

+0

必ず 'factor(assets)'を色で追加してください。このエラーは、美学にマッチさせようとすると、データの不均等なサブセットによって引き起こされます。 –

関連する問題