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
相关产品推荐
相关产品推荐

