2015-10-29 35 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