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

R语言微生物组绘图异常:期望图B却生成图A,求排查

问题分析与修正方案

核心问题点

  • 数据框名称不统一:你提到数据框是C,但代码中使用的是dat,需要确保调用正确的数据框。
  • 柱子位置参数错误:position = "fill"会将每个样本的柱子高度归一为1(展示相对比例),如果图B是展示各细菌门的实际count堆叠值,应该替换为position = "stack"。
  • 分面布局优化:若希望每个疾病类别下的样本独立排列,facet_wrap比facet_grid更适合横向分栏的展示需求,同时要确保sample_id是因子类型,避免x轴样本顺序混乱。

修正后的代码

# 统一使用你提到的数据框C
C %>% 
  # 确保sample_id按预期顺序显示(可根据需求手动调整levels)
  mutate(sample_id = factor(sample_id, levels = unique(sample_id))) %>%
  ggplot(aes(x = sample_id, y = count)) +
  # 横向分栏展示不同疾病类别,每个分面独立显示对应样本
  facet_wrap(~ animal_category, scales = "free_x", nrow = 1, strip.position = "top") + 
  # 堆叠柱状图展示实际count值,fill映射细菌门index
  geom_bar(aes(fill = index), stat = "identity", position = "stack") +
  # 可选:调整x轴标签角度避免重叠
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

额外说明

  • 如果图B的y轴确实需要展示比例,只需保留position = "fill",但要确保样本在对应疾病类别分面下正确分组。
  • 若sample_id的默认排序不符合预期,可手动修改factor的levels参数调整顺序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 15:30:55