2015-10-29 78 views
2

我試圖改變ggplot中的顏色方案,除了調整圖例。但是,我似乎只能做其中的一個,最近的命令會覆蓋另一個命令。更改ggplot中的顏色方案,並能夠編輯圖例

我在這裏有一個MWE,所以這只是在我的圖例標題和因子變量中創建了一個帶有多個詞的自定義圖例的虛擬情節。

library(ggplot2) 

set.seed(17) 
df <- data.frame(method=sample(c('A', 'B', 'C'), 20, replace=T), 
      score=runif(20), 
      group=sample(0:1, 20, replace=T)) 
ggplot(df, aes(x=method, y=score, fill=factor(group))) + 
    geom_boxplot() + 
    scale_fill_discrete("Multi word title", breaks=c(0, 1), labels=c('Group 1', 'Group 2')) 

Initial image

然後我得到其中我想與上述情節使用以下漂亮的顏色方案(來自here)。

library(scales) 
scale_fill_Publication <- function(...){ 
    discrete_scale("fill","Publication",manual_pal(values = c("#386cb0","#fdb462","#7fc97f","#ef3b2c","#662506","#a6cee3","#fb9a99","#984ea3","#ffff33")), ...) 
} 

然而,當我合得這種與繪圖代碼中,我得到一個警告量表「補」已經存在。爲「填充」添加另一個比例,它將替換現有的比例。

從結果圖中可以清楚地看到,這條最新的指令已經覆蓋了圖例修改。我可以更改數據框中的因子名稱,但對於用空格分隔的單詞不適用。

ggplot(df, aes(x=method, y=score, fill=factor(group))) + 
    geom_boxplot() + 
    scale_fill_discrete("Multi word title", breaks=c(0, 1), 
         labels=c('Group 1', 'Group 2')) + 
    scale_fill_Publication() 

Incorrect image

回答

2

你只需要一個填充縮放。將標籤和標題放入您定義的比例尺中,它使用與其他比例相同的參數。

ggplot(df, aes(x=method, y=score, fill=factor(group))) + 
     geom_boxplot() + 
     scale_fill_Publication("Multi word title", breaks=c(0, 1), 
          labels=c('Group 1', 'Group 2')) 
+0

答案中的顏色規格是怎麼回事? – user3386170