首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组内的ggplot scale_fill_manual

组内的ggplot scale_fill_manual
EN

Stack Overflow用户
提问于 2021-02-01 07:05:16
回答 1查看 1.9K关注 0票数 3

我正试图使用ggplot更改scale_fill_manual的单个条形图的颜色,但由于条形图位于组内(此处为"condition"),因此出现了问题。我怎样才能克服这个问题?

这是我的数据集:

代码语言:javascript
复制
df <- data.frame(
"condition" = c("A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B", "A", "B"), 
"type" = c("Apple", "Apple", "Apple", "Apple", "Pear", "Pear", "Pear", "Pear", "Orange", "Orange", "Orange", "Orange", "Tomato", "Tomato", "Tomato", "Tomato", "Tomato", "Berry", "Berry", "Berry"), 
"ripeness" = c("bad","bad", "good", "good", "bad", "bad", "good", "good", "bad","bad", "good", "good", "bad", "bad", "good", "good", "bad","bad", "good", "good"), 
count = c(19, 4, 7, 2, 7, 7, 1, 13, 16, 16, 31, 13, 30, 12, 39, 17, 1, 36, 4, 27)
)

我用来绘制它的代码是:

代码语言:javascript
复制
plot <- ggplot(df, aes(x=type, y=count, fill=ripeness)) +
  geom_bar(stat="summary", width = .7, position = position_dodge(width = .75)) +
  theme_light()

#the below is non-working code
plot + scale_fill_manual(values=c("black","blue","black","green","black","stripes-2","black","stripes-3","black", "yellow"))

如何指定各个条形的颜色?出于解释的目的,我用颜色名称编写,但会将它们替换为html颜色代码。后来,我还打算用ggpattern (https://coolbutuseless.github.io/package/ggpattern/articles/geom-gallery-geometry.html#colour-example-1)来纹理我的两个条形图,但是如果太难的话,这不需要在这篇文章中解决。

我试图在R中重现这个情节:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-01 07:32:33

一种方法是在dataframe中添加一列颜色并使用scale_fill_identity

代码语言:javascript
复制
library(dplyr)
library(ggplot2)

colors <- c("black","blue","black","green","black","orange",
            "black","pink","black", "yellow")

df %>%
  distinct(type, ripeness) %>%
  mutate(color = colors) %>%
  inner_join(df, by = c('type', 'ripeness')) %>%
  ggplot(aes(x=type, y=count, fill=color)) +
  geom_bar(stat="summary", width = .7, position = position_dodge(width = .75)) +
  theme_light() +
  scale_fill_identity()

PS -我无法使"stripes-2""stripes-3"颜色工作,所以改变了它的其他随机颜色。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65988418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档