如何在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
相关产品推荐
相关产品推荐

