我试图改变ggplot中的配色方案,除了调整传奇 . 但是,我似乎只能做其中一个,最近的命令覆盖另一个 .
我在这里有一个MWE,所以这只是创建一个带有自定义图例的虚拟情节,在我的图例 Headers 和因子变量中有多个单词 .
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")), ...)
}
但是,当我将其与绘图代码结合使用时,我会收到一条警告标尺'fill'已经存在 . 为'fill'添加另一个比例,它将取代现有的比例 .
从结果图中可以清楚地看到,这条最新指令已经覆盖了图例修改 . 我可以更改数据框中的因子名称,但这对于用空格分隔的单词不起作用 .
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()
1 回答
您只需要一个填充比例 . 将标签和 Headers 放在您定义的比例中,它使用与其他比例相同的参数 .