【问题标题】:Stacked Bar Chart With No Fill?没有填充的堆积条形图?
【发布时间】:2019-10-18 00:21:41
【问题描述】:

能够就问题获得帮助。代码现已删除。

【问题讨论】:

  • 你为什么不复制/粘贴数据,而不是给我们看一张图片呢?会更有用。
  • 抱歉刚刚添加

标签: r ggplot2 dplyr geom-bar geom-col


【解决方案1】:

数据

test <- data.frame(pass_location=c('middle','left','right'), Air_Epa_Play=c(0.263,0.086,0.082), YAC_Epa_Play=c(0.434,0.439,0.442), Total_Completed=c(0.697,0.525,0.524))

  pass_location Air_Epa_Play YAC_Epa_Play Total_Completed
1        middle        0.263        0.434           0.697
2          left        0.086        0.439           0.525
3         right        0.082        0.442           0.524

您可以忽略 Total_Completed 列 - select(-Total_Completed)ggplot 为您进行叠加/求和,因此您不必自己计算总数。但是,ggplot 也喜欢长格式(而不是宽格式)的数据,因此您需要将gather() 相关值(在 y 轴上)放入单个列中。注意我使用gather(..., -pass_location) 来忽略分组列。在有和没有fill=var 的情况下尝试以下操作。一旦您看到 ggplot 喜欢长格式数据,使用它就会变得更加直观 - 至少对我来说是这样。

library(tidyverse)
test %>% 
  select(-Total_Completed) %>% 
  gather(var, value, -pass_location) %>% 
  ggplot(., aes(x=pass_location, y=value, fill=var)) + 
  geom_col()

【讨论】: