r - 在 ggplot2 中使用 `scale_fill_manual` 手动着色图不起作用

标签 r ggplot2

我正在努力解决如何手动更改 ggplot2 中的条形颜色。奇怪的是,当使用需要图例的更复杂的格式时,我可以通过使用scale_fill_manual并设置值、标签等来使其工作。但是,当创建不需要图例的更简单的图表时,我似乎无法让它工作。下面是一个示例数据框、我在 dplyr 中用于获取百分比的步骤,以及我认为它应该如何在 ggplot2 中工作。我只想手动将条形颜色更改为红色、seagreen3 和灰色。

如有任何帮助,我们将不胜感激。我也很想知道用于快速计算百分比的不同方法。我一直在 dplyr 中使用管道,但如果能看到其他编写代码的方法那就太好了。

library(dplyr)
library(ggplot2)

Service <- c("Satisfied", "Dissatisfied", "Neutral", "Satisfied", "Neutral")
Service2 <- c("Dissatisfied", "Dissatisfied", "Neutral", "Satisfied", "Satisfied")

Services <- data.frame(Service, Service2)

ServicesProp <- Services %>%
                select(Service) %>% group_by(Service) %>% 
                summarise(count=n()) %>%
                mutate(percent = count / sum(count))

ggplot(ServicesProp, aes(x = Service, y = percent)) + 
    geom_bar(stat = "identity", position = "dodge") + 
    scale_fill_manual(values = c("red", "seagreen3", "grey"))

最佳答案

以防万一您不确定@baptise 的含义:

ggplot(ServicesProp, aes(x = Service, y = percent, fill = Service)) + 
  geom_bar(stat = "identity", position = "dodge") + 
  scale_fill_manual(values = c("red", "grey", "seagreen3"))

enter image description here

关于r - 在 ggplot2 中使用 `scale_fill_manual` 手动着色图不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36048033/

相关文章:

删除重复的组 dplyr r

r - 在 Rmarkdown 中保存导航栏 Shiny 应用程序

r - 如何仅显示带有刻面的极地ggplot的部分绘图区域?

r - 如何为ggplot中的每个点使用不同的形状

R在多图上的图形之间设置空间

r - facet_wrap : How to add y axis to every individual graph when scales ="free_x"?

r - 如何在 ggplot2 中包含小中断

r - 如何在 R 中创建条形图,其中 y 轴为频率而不是密度?

r - 当数据未格式化为表格时将数据导入 R 中

r - 修改色标图例指南以匹配 ggplot2 中的线条大小