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

如何在ggplot发散图中保留自定义基因排序?

解决ggplot发散图自定义基因顺序的问题

问题核心是你绘图时用了reorder(gen, RQ_gapdh),这个函数会根据RQ_gapdh的数值重新排序x轴基因,直接覆盖了你之前设置的因子顺序。要保留自定义顺序,按以下步骤修改:

1. 正确设置因子的自定义顺序

无需手动排序数据框,转换因子时直接指定levels参数为你的自定义基因顺序即可:

genes_order <- c("ABCA1","ABCG1","NR1H2","NR1H3","PPARA",
                 "PPARD","PPARG","RXRA","RXRB")

# 转换为因子并锁定自定义顺序
df_plot2$gen <- factor(df_plot2$gen, levels = genes_order)

2. 修改绘图代码,移除reorder函数

绘图时x轴直接使用gen,不再用reorder干扰顺序:

p1 <- ggplot(data = df_plot2, aes(x = gen, y = RQ_gapdh, ymin = after_scale(1), fill = Color)) +  
  geom_bar(stat = "identity", width=.5)+
  labs(x = "Genes", y = expression(2^-ddCt~"value"),
       title = "Gene expression",
       subtitle = "1 year post-intervention")+
  guides(fill = FALSE) +
  coord_flip()+
  facet_wrap(~grup_int, labeller = labeller(grup_int = c("1" = "Olive oil", "2" = "Nuts", "3" = "Low-fat diet")))

补充说明:

  • 原代码里的subtitles参数应为subtitle(单数),否则副标题无法正常显示
  • 用expression()能正确渲染2^-ddCt的数学格式,避免显示为纯文本字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 17:53:31