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

如何使用geom_col正确绘制带子分组的温度检测次数柱状图

问题排查与修复方案

原始代码的核心问题

  • 第一个问题:temp字段是连续数值类型,ggplot会默认把x轴渲染为连续轴,相同温度的不同分组会出现位置偏移,无法对齐到同一个柱子上
  • 第二个问题:相同date+temp+type2组合下存在多条重复记录(比如9月6日73度的band_2有2条测试记录),未聚合直接绘图会导致堆叠逻辑混乱、数值计算错误

修复后的代码

# 先聚合数据再绘图
df1 %>% 
  # 按日期、温度、band类型分组,汇总总检测次数
  group_by(date, temp, type2) %>% 
  summarise(total_tests = sum(tests), .groups = "drop") %>% 
  # 把温度转成因子,让x轴变成离散刻度,每个温度对应唯一柱子位置
  mutate(temp = as.factor(temp)) %>% 
  ggplot(aes(x = temp, y = total_tests, fill = type2)) +
  # 堆叠柱状图,默认position就是stack,符合分组分布的需求
  geom_col(width = 0.8) +
  facet_grid(.~date, scales = "free_x") +
  # 可选:调整x轴标签角度避免重叠
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  labs(x = "温度", y = "检测总次数", fill = "类别")

效果说明

运行上述代码后,每个分面对应一天的数据,x轴每个刻度对应一个温度值,柱子总高度为该温度下的总检测次数,柱子内部不同颜色块对应各band类别的检测次数分布,完全匹配需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:15:03