r - 在 geom_tile ggplot2 中格式化堆叠的 geom_bar 的内部线

标签 r ggplot2 geom-bar stacked-chart stacked

这可能与这个问题有关:format-internal-lines-of-a-stacked-geom-bar-ggplot ,但我仍然无法解决它,因为我还是初学者。这个图有很多堆积条,这里只是示例数据。我只想保留外部边框并删除堆叠条中的内部边框。请帮助我:

data.frame(var1=c(rep("A1",4), rep("A2",4), rep("A3", 4), rep("A4", 4), rep("A5", 4), rep("A6", 4)), 
          var2=c(rep("A2",4), rep("A3", 4), rep("A4", 4), rep("A5", 4), rep("A6", 4), rep("A7", 4)), 
          varb=c(rep(c("S", "T", "U", "N"), 6)), value=c(80, 0, 20, 0, 
          20,30,30,20,0,60,40,0,100,0,0,0,0,60,0,40,0,60,0,40))->test

ggplot(test, aes(var2, var1, fill = varb))+ 
  geom_tile(aes(x=var1, y=value, width = 0.9, height=0.7), position = "stack", 
  colour="green")+facet_grid(var2~., space="free",scales="free")+
  scale_fill_manual(values=c("#99d594", "#fc8d59", "#ffffbf", "grey60")) 

enter image description here

最佳答案

基本上您需要分别添加两个形状,一个没有颜色的 geom_tile 和另一个具有透明填充的 geom_col

而且我认为您的绘图中存在一些错误,例如:y 轴应该是 value 而不是 var1

ggplot(test, aes(x = var2, fill = varb))+ 
    geom_tile(aes(y = value, width = 0.9, height=0.7), position = "stack") +
    geom_col(aes(y = max(value)),position = "identity",alpha = 0,color = "black") +
    facet_grid(var2~., space="free",scales="free") +
    scale_fill_manual(values=c("#99d594", "#fc8d59", "#ffffbf", "grey60")) 

enter image description here

关于r - 在 geom_tile ggplot2 中格式化堆叠的 geom_bar 的内部线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58069755/

相关文章:

r - 如何在一个 data.table 调用中对行进行子集化和排序?

r - 在 R 中绘制四分之一圆

堆积条形图上的R ggplot标签

r - 是否有可能在 ggplot2 的堆积条形图中组合 position_stack 和 nudge_x?

r - 避免使用 pivot longer 进行硬编码以一次对多个列进行 pivot

r - 当分配给列表对象时,R 中的 t.test 给出奇怪的结果

r - 使用 ggplot 与使用基本 R 函数时的图形结果不同?

r - 如何将日期格式从 yearmon 更改为 yyyy-mm-dd?

r - 使用 ggplot2,什么代码创建由单个单词及其计数组成的条形图?

r - ggplot geom_bar:aes(组= 1)的含义