scale_fill_manual 在 geom_bar 中不起作用

Posted

技术标签:

【中文标题】scale_fill_manual 在 geom_bar 中不起作用【英文标题】:scale_fill_manual is not working in geom_bar 【发布时间】:2016-11-21 11:09:39 【问题描述】:

我正在尝试使用 scale_fill_manual 在 ggplot2 中更改条形图中的颜色,但由于某种原因,只有在我使用美学内部的填充选项时才有效。 我举了个例子:

library(ggplot2)
library(dplyr) 
iris %>% ggplot(aes(x=Sepal.Width,y=Sepal.Length))+
geom_bar(stat="identity") + scale_fill_manual(values='lightblue')

这是结果,颜色没有变化:

现在,使用美学中的填充选项,它可以工作了:

iris %>% ggplot(aes(x=Sepal.Width,y=Sepal.Length, fill=factor(2) ))+
geom_bar(stat="identity")+scale_fill_manual(values='lightblue')

有什么方法可以在不使用填充选项的情况下更改条形颜色,只使用 scale_fill_manual?

【问题讨论】:

scale_fill_manual 仅当您在 aes 中具有 fill 美学时才有效。但是,如果您不想将数据列映射到填充美学,为什么不直接在 geom_bar:geom_bar(stat="identity", fill="lightblue") 中设置填充颜色? 请记住 aes() maps 美学,但您可以使用普通函数参数设置它们。 我也有同样的问题。假设我正在创建一个“主题”并希望条形的默认颜色为蓝色。即使用户没有声明填充变量,我也想将主题自动化。 我在这里发布了一个类似的问题:github.com/jrnold/ggthemes/issues/67(虽然还没有答案) @LucasMation,this SO answer 回答你的问题了吗? 【参考方案1】:

您需要在 aes 中定义 fill

【讨论】:

以上是关于scale_fill_manual 在 geom_bar 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

ggplot 手动图例 scale_fill_manual 用于单独的颜色因子

如何在 R 中的 ggplot2 中更改 geom_text 中的字体颜色?

带有NA值的吊图

将子/上标添加到条形图标签

情节推翻了ggplot2的scale_fill_manual的标签

绘制带有分面换行的条形图