绘制条形图时生成堆叠条形图,求助将属性设为X轴的方法
解决ggplot堆叠条形图转常规分组条形图的问题
你的代码生成堆叠条形图的核心原因是将x轴映射成了空字符串"",导致所有类别都被放在同一个x位置,从而自动堆叠。只需调整ggplot的美学映射,把group列指定为x轴变量即可:
修正后的代码
# 先清理group列的多余空格(可选但推荐,避免X轴标签带空格) CTR.object$group <- trimws(CTR.object$group) # 绘制常规分组条形图 ggplot(CTR.object, aes(x = group, y = value, fill = group)) + geom_bar(stat = "identity") + # stat="identity"保留,因为y是已经计算好的均值 theme(axis.text.x = element_text(angle = 45, hjust = 1)) # 可选:旋转X轴标签避免重叠
关键修改点
- 将
aes(x="", ...)改为aes(x=group, ...):让每个group类别对应X轴上的独立位置 - 用
trimws()清理group列的多余空格:比如原数据里的"CONVERSIONS "末尾有空格,会导致X轴标签不整洁 - 添加
theme(axis.text.x...):当类别名称较长时,旋转标签避免互相重叠
如果不需要填充色区分类别,可以去掉fill=group参数,这样所有条形图颜色一致。
内容的提问来源于stack exchange,提问作者Gurashish Singh
相关产品推荐
相关产品推荐

