You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用ggplot绘制仅含整体蓝色边框的堆叠柱状图?

解决ggplot堆叠柱状图仅显示整体边框的问题

你当前的代码会给堆叠柱状图的每个分块都添加蓝色边框,要实现仅为整个柱状列添加蓝色边框、去除内部分隔线的效果,可以通过以下方法修改:

原问题代码与效果

原代码:

library(ggplot2)
test=as.data.frame(cbind(a=c(1,1,2,3), b=1:4, c=as.character(1:4)))
ggplot(test) + geom_bar(aes(x=a, y=b, fill=c), colour="blue", stat="identity")

原效果:
原堆叠柱状图效果

修改后的代码与说明

library(ggplot2)
# 建议直接用data.frame创建数据,避免cbind转换的潜在问题
test <- data.frame(a = c(1,1,2,3), b = 1:4, c = as.character(1:4))

ggplot(test) +
  # 绘制堆叠柱状图,去掉内部分块的边框
  geom_bar(aes(x = a, y = b, fill = c), colour = NA, stat = "identity") +
  # 为每个x分组的总高度添加整体蓝色边框
  stat_summary(aes(x = a, y = b), 
               fun = sum,  # 计算每个分组的y值总和
               geom = "col",  # 用柱状图形式绘制
               fill = NA,  # 填充透明,只保留边框
               colour = "blue",  # 边框颜色
               size = 1)  # 可根据需求调整边框粗细

原理说明

  • 第一层geom_bar设置colour=NA,彻底移除所有内部分块的分隔线,只保留堆叠的填充色块。
  • 第二层stat_summary自动计算每个x分组的y值总和,绘制一个与堆叠柱总高度一致的“空柱子”(透明填充),仅显示其蓝色边框,刚好覆盖整个堆叠柱的外围,达成仅显示整体边框的效果。

内容的提问来源于stack exchange,提问作者quick2063

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 13:43:31