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 中的字体颜色?