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

如何在R语言中绘制按Sample Site分组的堆叠柱状图?

R ggplot堆叠柱状图实现子分组的两种方案

以下两种方法均可实现堆叠柱状图按上层采样位点分组、同组内排列对应样本的效果:

  • 方案1:使用ggplot2自带分面功能(无需额外安装包,适配绝大多数场景)
library(ggplot2)

ggplot(PFASData, aes(fill = Species, y = value, x = ID)) +
  geom_bar(position = "stack", stat = "identity") +
  # 按采样位点分面,free_x保证不同分组的样本量不同时不会出现空柱子
  facet_grid(. ~ `Sample Site`, scales = "free_x", space = "free_x", switch = "x") +
  theme(
    strip.placement = "outside", # 将分面标签移到坐标轴外侧作为上层分组标签
    strip.background = element_blank(), # 去掉分面标签的默认背景
    panel.spacing = unit(0, "pt") # 消除分面之间的空隙,视觉上是连续的柱状图
  )
  • 方案2:使用ggh4x包实现嵌套坐标轴(效果更贴合分层轴标签的需求)
# 首次使用需先安装包:install.packages("ggh4x")
library(ggplot2)
library(ggh4x)

ggplot(PFASData, aes(fill = Species, y = value, x = interaction(`Sample Site`, ID))) +
  geom_bar(position = "stack", stat = "identity") +
  scale_x_discrete(
    # 配置嵌套坐标轴,拆分位点和样本ID分别显示为上下层标签
    guide = guide_axis_nested(delim = ".", type = "nesting")
  ) +
  labs(x = "采样位点 / 样本ID")

注:运行代码前需保证你的数据集里每个ID都对应唯一的Sample Site取值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:30:01