如何在同一个ggplot条形图中设置scale_fill_brewer和scale_fill_discrete?

9
我正在尝试创建一个条形图,但是我遇到了以下错误:
“填充比例尺已经存在。添加另一个填充比例尺将替代现有的比例尺。”
我确定问题出在尝试使用两个scale_fill函数上。如果我删除其中一个(scale_fill_brewer或scale_fill_discrete),则可以工作。
ggplot(df_postgres, aes(x=as.factor(language), y=total/1000, fill=type)) + 
geom_bar(stat='identity', color = 'black')+
geom_text(mapping=aes(label=ifelse(type=='A', (paste(as.character(floor(total/1000)),'K') ), '')), vjust=-0.7,color='black')+
scale_x_discrete(name="Language")+
scale_y_continuous(name="Repos (thousands)")+
scale_fill_brewer(palette='Pastel1')+
scale_fill_discrete(name="Proportion",labels=c("Language","Others"))

我的问题是:我如何设置离散选项和漂亮的调色板选项?我是R的新手,但找不到对这个特定错误的回应。

2
只需从 scale_fill_discretescale_fill_brewer 提供名称和标签参数即可。它们将通过 ... 内部传递。 - Richard Telford
可以了,Richard!你应该写一个答案,这样我就可以接受了。很有趣,我曾经尝试过相反的方法,将参数传递给scale_fill_discrete :) - atorres
1个回答

7
...参数用于scale_fill_brewer,它将接受传递给scale_fill_discrete的参数。因此,将您的namelabels参数移动到scale_fill_brewer中,删除scale_fill_discrete,一切都应该正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接