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

ggplot2柱状图优化:移除分组标签与均匀分隔柱子

ggplot柱状图修改方案

针对你提出的两个修改需求,以下是具体解决方法和修改后的完整代码:

修改需求与解决方法

  • a) 移除顶部分组标签:在theme()中设置strip.text = element_blank(),直接隐藏所有面板的分组标题。
  • b) 实现柱子均匀分隔:在facet_wrap()中添加space = "free_x"参数,让每个面板的宽度与该组的类别数量成正比,从而保证所有柱子宽度一致。

修改后的完整R代码

gene_expression_data <- data.frame(Germinal = c("CDH1", "NF1", "ATM", "BRIP1", "AXIN2", "NBN", "RAD51C"),
                                   Freq_mut = c(13.08, 4.46, 3.17, 1.29, 0.89, 0.79, 0.69))

gene_expression_data |> 
  mutate(Germinal = fct_reorder(Germinal, rev(Freq_mut), mean)) |> 
  ggplot(aes(x = Germinal, y = Freq_mut)) + 
  geom_bar(aes(y = 100), stat = "identity", fill = '#e0e0e0') + 
  geom_bar(stat = "identity") + 
  geom_text(aes(y = Freq_mut,
                label = sprintf("%2.1f ", round(Freq_mut, 1))
  ), adj = 0, nudge_y = 1, size = 3) + 
  facet_wrap(~ Freq_mut < median(Freq_mut),
             scales = 'free_x', ncol = 2,
             space = "free_x"  # 新增:保证柱子宽度均匀
  ) + 
  scale_y_continuous(breaks = c(0, 100)) + 
  labs(y = 'mutation frequency (%)', x = '') + 
  theme(
    panel.background = element_blank(),
    strip.text = element_blank(),  # 修改:移除顶部分组标签
    axis.text.x = element_text(vjust = 1, size = rel(1)),
    panel.grid = element_blank()
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 05:50:25