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

使用R的fantaxtic包绘图:移除图例标题并调整Other位置

使用fantaxtic绘制嵌套柱状图的需求解决方案

1. 移除图例中的“Order”标题

直接在theme()配置里把legend.title设置为element_blank()即可,替换你原代码中对应行:

theme(
  plot.title = element_text(hjust = 0.6, size = 12, face = "bold", color = 'black'),
  legend.title = element_blank(),  # 移除图例标题
  legend.key.size = unit(8, "points"),
  legend.position = 'bottom',
  axis.text.x = element_text(angle = 0, hjust = 0.5, color = 'black'),
  axis.text.y = element_text(color = 'black'),
  strip.text = element_text(face = "bold", color = 'black')
)

2. 将“Other Orders”置于类群列表末尾

需要先调整top_nested$ps_obj中Order分类的因子水平,手动把“Other Orders”移到最后:

# 提取分类表并调整Order的因子顺序
tax_df <- as.data.frame(tax_table(top_nested$ps_obj))
# 筛选出除"Other Orders"外的所有类群,再将"Other Orders"追加到末尾
order_levels <- c(setdiff(unique(tax_df$Order), "Other Orders"), "Other Orders")
# 重新设置因子水平
tax_df$Order <- factor(tax_df$Order, levels = order_levels)
# 更新phyloseq对象的分类表
tax_table(top_nested$ps_obj) <- as.matrix(tax_df)

修改后的完整代码

library(fantaxtic)

sample_order<-c('Control.t0','Control.t30', 'Control.t60', 'LPSC.232.t30', 'LPSC.232.t60', 'APS.Control.t0', 'APS.Control.t30', 'APS.LPSC.232.t30','APS.Control.t60', 'APS.LPSC.232.t60')

top_nested <- nested_top_taxa(physeq_Fungi, top_tax_level = 'Phylum', nested_tax_level = 'Order', n_top_taxa = 5, n_nested_taxa = 5)

# 调整Order因子水平,把Other Orders移到最后
tax_df <- as.data.frame(tax_table(top_nested$ps_obj))
order_levels <- c(setdiff(unique(tax_df$Order), "Other Orders"), "Other Orders")
tax_df$Order <- factor(tax_df$Order, levels = order_levels)
tax_table(top_nested$ps_obj) <- as.matrix(tax_df)

test<-plot_nested_bar(top_nested$ps_obj, top_level = "Phylum", nested_level = "Order", nested_merged_label = "Other Orders", palette = c('Ascomycota' = 'green' , 'Basidiomycota' = 'purple', 'Cryptomycota' = "blue", 'LKM15' = "red", 'Mucoromycota' = "yellow")) +  
  facet_wrap(~Oxidation, scales = "free_x") + 
  theme(
    plot.title = element_text(hjust = 0.6, size = 12, face = "bold", color = 'black'),
    legend.title = element_blank(),  # 移除图例标题
    legend.key.size = unit(8, "points"),
    legend.position = 'bottom',
    axis.text.x = element_text(angle = 0, hjust = 0.5, color = 'black'),
    axis.text.y = element_text(color = 'black'),
    strip.text = element_text(face = "bold", color = 'black')
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 18:40:21