2016-11-11 63 views
1

我剛開始探索ggplot2,目前我還沒有理解它頻繁使用的aes對象。我嘗試了幾種方法來解決這個問題,但它一直沒有工作。任何幫助將非常感激!如何獲取分類數據框的堆積面積圖?

所以,我有我的策劃的目的明確分類的數據幀,這看起來是這樣的:

> 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 

現在,我想繪製堆積面積圖,顯示weights每個asset,因爲gamma變化。由於在這個例子中有4個資產,每個gamma值有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

嘗試將資產轉換爲因子。現在,它正在嘗試創建一個區域,並認爲它需要通過連續變量更改該區域的顏色和填充,而ggplot不支持該區域。 – Axeman

+0

非常感謝,@Axeman!但是下面引用的答案對我來說效果更好,因爲我也使用其他排序方法的數據框。 :) –

+0

是的,這是一樣的。 – Axeman

回答

0

您不一定必須將資產列轉換爲因子明確性,您可以在ggplot調用中將factor()fill置於geom_area之內。

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

不客氣,記得如果你滿意,接受這個答案。 –

+0

我還有一個問題。對於超過指定數量的資產,我得到以下錯誤:美學必須是長度1或與數據(3493)相同:color,fill,x,y。任何想法如何解決這個問題? –

+0

一定要在顏色上添加'因素(資產)'。當試圖匹配美學時,這個錯誤是由不相等的數據子集造成的。 –