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

R语言堆叠柱状图绘制异常问题求助

解决堆叠柱状图异常问题

看起来你已经正确计算了分组计数,但绘制的图表出现异常,大概率是图例位置不合理、坐标轴范围设置不当这类常见问题导致的。我先结合你的数据和代码给出优化方案:

第一步:确认数据维度

你的counts表格结构是对的——行是Performance的三个类别,列是不同国家(球队),这符合“每个球队下堆叠三种比赛结果计数”的需求:

ENG ESP ITA NED
BETTER    330 257 264 197
NO CHANGE 312 234 188 108
WORSE     252 199 143 74

第二步:优化绘图代码

针对常见的异常问题(比如图例遮挡柱子、坐标轴范围冗余),修改后的代码如下:

counts <- table(results$Performance, results$Country)

barplot(counts, 
        main = "Game Count per Football Team", 
        xlab = "Football Teams", 
        ylab = "Game Count", 
        col = c("darkblue", "red", "yellow"),  # 统一小写更规范,R颜色名不区分大小写
        legend.text = rownames(counts),  # 自动关联类别与图例
        args.legend = list(x = "topright", bty = "n"),  # 把图例移到右上角,去掉边框避免遮挡
        ylim = c(0, 900))  # 调整到刚好容纳最大分组总和(ENG的894),避免空间浪费

可能的异常原因及解决:

  • 图例遮挡柱子:默认图例位置会和柱子重叠,用args.legend指定位置(比如topright)就能解决。
  • 坐标轴范围不合理:你之前设置ylim=c(0,1000),但所有球队的计数总和都没超过900,缩小范围让图表更紧凑。如果不确定总和,也可以直接去掉ylim参数,让R自动计算最优范围。
  • 颜色与类别对应错误:确认col的顺序和rownames(counts)完全一致(这里是BETTER→深蓝,NO CHANGE→红,WORSE→黄),如果顺序不对会导致颜色匹配错误。

如果你的异常是其他情况(比如柱子方向错误),可以尝试转置计数矩阵:barplot(t(counts)),不过从你的需求来看,当前的维度是正确的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:26:16