通过第四个变量的条形图颜色

Color by a bar graph by a fourth variable

所以,我正在尝试使用 ggplot2 创建一个条形图,它将通过第四个变量为图形的填充着色。

 df = data.frame(c(1,1,2,2,3), c("A","B","C","D","E"),  c(1:5 / 4), c("Y", "N", "Y", "N", "N"))
 names(df)[1:4] <- paste("var", 1:4, sep = "")
 df$var1 <- as.factor(df$var1)
 df$var2 <- as.factor(df$var2)
 df$var4 <- as.factor(df$var4)
 ggplot(df, aes(x = var1, y = var3, fill = var2)) + facet_wrap(~var1, scale = "free") + 
    geom_bar(position = "dodge", colour = "black", stat = "identity") + 
    scale_fill_brewer(palette = "Set1") + scale_y_continuous(labels = scales::percent) 

我想做的是将条形图中显示的颜色设置为与 var4 相对应,但仍按 var2 对图进行分面。我试图将 aes(fill = var4) 放入 geom_bar 部分,但这并没有给我想要的结果。

我还遇到了一个问题,条形图相互堆叠,似乎会根据 var3 是字符还是数字而改变。在上下文中,var1 将是一个问题 ID,var2 将是一个答案 ID,var3 将是一个百分比,而 var4 将是答案是否是正确与否。

你想要这样的东西吗?

ggplot(df, aes(x = var2, y = var3, fill=var4)) + facet_wrap(~var1, scale = "free") + 
  geom_bar(position = "dodge", colour = "black", stat = "identity") + 
  scale_fill_brewer(palette = "Set1") + scale_y_continuous(labels = scales::percent)