【问题标题】:Format internal lines of stacked geom_bar inside geom_tile ggplot2格式化 geom_tile ggplot2 内堆叠 geom_bar 的内部行
【发布时间】:2019-09-23 20:26:34
【问题描述】:

这可能与这个问题有关: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")) 

【问题讨论】:

  • 这个问题解决了吗?请考虑接受作为答案。

标签: r ggplot2 geom-bar stacked-chart stacked


【解决方案1】:

基本上你需要分别添加两个形状,一个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")) 

【讨论】:

    猜你喜欢
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    • 2017-09-12
    • 2013-05-26
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    相关资源
    最近更新 更多