You need to enable JavaScript to run this app. R语言barplot绘图:如何实现总对局条形内的成功对局量填充
优惠活动
大模型
产品
解决方案
定价
更多

R语言barplot绘图:如何实现总对局条形内的成功对局量填充

基础R barplot实现条形内分层填充的实现方法

核心实现逻辑

之前绘制失败的核心原因是,R基础包的barplot只有在height参数接收矩阵格式数据时,才会按列实现堆叠分层效果;传入单个数值向量时只能绘制无分层的纯色条形。
你需要的效果可以拆解为标准堆叠结构:每个条形的总高度和原本完全一致(等于总对局数number),拆分两个分层段:

  • 底层填充:成功完成的对局数sum
  • 剩余上层段:未完成的对局数(即number - sum)
    两段数值相加刚好等于number,完全匹配你要的“总对局数条形内部嵌入成功对局规模分层”的视觉效果。

可直接运行的代码

# 1. 计算分层所需的未完成对局数值
game_count$incomplete <- game_count$number - game_count$sum
# 2. 构造堆叠用的矩阵:每一列对应一个配对的两个分层段数值
plot_height_matrix <- rbind(
  completed = game_count$sum,
  incomplete = game_count$incomplete
)
# 3. 绘制分层条形图
barplot(
  height = plot_height_matrix,
  xlab = 'Pairs',
  ylim = c(0, 35),
  ylab = 'Games played',
  # 为两层设置区分度颜色
  col = c("#3a7afe", "#d9d9d9"),
  # 自动生成图例标注分层含义
  legend.text = rownames(plot_height_matrix),
  args.legend = list(x = "topright", bty = "n")
)

效果说明

  • 生成的每个条形总高度和你原有代码直接绘制game_count$number的结果完全一致,不会出现纵轴刻度、总高度的偏移
  • 可通过调整col参数中的两个色值,自定义分层的视觉样式,比如将未完成段设置为斜线纹理填充
  • 如果不需要图例,直接删除legend.text和args.legend两个参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.14 18:06:01