2012-03-16 50 views
1

我想創建一個堆疊條形圖中,不僅變量具有其唯一的顏色,但也類別更改兩個變量和類別的顏色GGPLOT2

a = c("A","A","B","B","C","C","D","D") 
b = c("inclusion","exclusion","inclusion","exclusion","inclusion","exclusion","inclusion","exclusion") 
c = c(60,20,20,80,50,55,25,20) 
dat = data.frame(category=a, variable=b, value=c) 
dat 

category variable value 
1  A inclusion 60 
2  A exclusion 20 
3  B inclusion 20 
4  B exclusion 80 
5  C inclusion 50 
6  C exclusion 55 
7  D inclusion 25 
8  D exclusion 20 

與costum可變顏色的曲線可以創建足夠容易:

colors <- c("#9ECAE1","#F03B20") 
ggplot(dat, aes(category, value, fill = variable)) + 
geom_bar()+ 
scale_fill_manual(values = colors) 

問題是如何手動更改類別的顏色?任何幫助,將不勝感激。

編輯:只是爲了清除它最後的陰謀應該有8種不同的顏色:每對類別/變量將手動分配不同的顏色。

http://i.stack.imgur.com/G9uKt.png

+0

所以你的目標是一個條形圖,包含4個條形,8個段,每個段有不同的顏色(即8種獨特的顏色)? – joran 2012-03-16 14:46:07

+0

如果可能的話,使用16種不同的顏色 - 我沒有說清楚:對類別/變量會有一個。 – fridaymeetssunday 2012-03-16 14:55:16

+0

今天早上我一定沒有足夠的咖啡,因爲它看起來只有8種顏色。 (4類×2變量= 8個組合) – joran 2012-03-16 15:02:59

回答

2

好了,在這種情況下,您只需爲每個獨特組合的變量(在這種情況下,每行一個,但粘貼兩個變量一起是一個比較普遍;你也可以使用interaction) :

dat$grp <- paste(dat$category,dat$variable) 

ggplot(dat, aes(category, value, fill = grp)) + 
    geom_bar()+ 
    scale_fill_manual(values = brewer.pal(8,"Reds")) 
+0

它的工作!非常感謝! – fridaymeetssunday 2012-03-16 15:36:58