除了调整图例之外,我还试图改变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'))
然后我获得了以下漂亮的配色方案(来自here),我想用上面的情节。
library(scales)
scale_fill_Publication <- function(...){
discrete_scale("fill","Publication",manual_pal(values = c("#386cb0","#fdb462","#7fc97f","#ef3b2c","#662506","#a6cee3","#fb9a99","#984ea3","#ffff33")), ...)
}
但是,当我将其与绘图代码结合使用时,我会收到警告 Scale for&#39; fill&#39;已经存在了。为&#39; fill&#39;添加另一个比例,它将取代现有的比例。
从结果图中可以清楚地看到,这条最新指令已经覆盖了图例修改。我可以更改数据框中的因子名称,但这对于用空格分隔的单词不起作用。
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()
答案 0 :(得分: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'))