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

如何在ggplot2分类图中仅显示对应分类有数据的行?

解决ggplot2 facet子图仅显示对应分类有数据的y轴标签问题

默认使用facet_wrap绘制子图时,y轴刻度会保留全局所有feature值,导致即使某分类下没有对应数据的feature也会显示。要实现每个子图仅展示当前分类有数据的feature,只需在facet_wrap中添加scales = "free_y"参数,让每个子图的y轴自动适配当前分类的有效feature。

修改后的完整代码如下:

library(ggplot2)
ggplot(df, aes(`Seq ratio`, feature, size =`Seq count`, colour=`adj. P value`))+
  facet_wrap(~ Category, ncol = 1, scales = "free_y") +
  geom_point() +
  ylab(NULL) +
  coord_cartesian(xlim = c(0, 0.25))+
  scale_x_continuous(n.breaks = 5)+
  scale_size(name = "Seq count", limits = c(0, 15))

原理说明

  • scales = "free_y"会让每个facet子图独立设置y轴刻度,只保留当前子图数据中存在的feature值,自动隐藏无数据的feature标签。
  • 该参数不会影响x轴(除非设置scales="free"),符合你需要x轴统一范围的需求。

内容的提问来源于stack exchange,提问作者Marta López

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 01:03:20