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

如何用ggplot2绘制按habitat分组、az和iz两列并排的分组箱线图

实现步骤

1. 数据预处理

你给出的原始数据中az、iz两列使用逗号作为小数点分隔符,首先要确保这两列被识别为数值类型:如果是读入数据阶段,可以在read.table/read.csv中添加参数dec = ","自动识别;如果已经读入为字符型,可以用以下代码转换:

library(tidyverse)
data <- data %>%
  mutate(across(c(az, iz), ~as.numeric(sub(",", ".", .x))))

2. 数据集转换为长格式

ggplot2默认适配长格式数据做分组可视化,你需要把az、iz两列合并为一个数值列,新增列区分两个指标类型:

# 宽表转长表
data_long <- data %>%
  pivot_longer(cols = c(az, iz), names_to = "index_type", values_to = "value")

# 保留你之前设定的habitat因子顺序
data_long$habitat <- factor(data_long$habitat, levels = c("We","Gi","Mw","Htr"))

3. 绘制并列分组箱线图

在aes中用颜色/填充映射区分az/iz两类指标,添加position_dodge参数实现同habitat分组下两个箱线图并排展示:

ggplot(data_long, aes(x = habitat, y = value, fill = index_type)) +
  geom_boxplot(position = position_dodge(width = 0.8)) +
  # 可根据需求自定义标签
  labs(x = "生境类型", y = "数值", fill = "指标类型")

如果需要用边框颜色而非填充色区分两类指标,把代码中所有fill参数替换为colour即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:39:05