删除 facet_grid() 中的两个 X 轴标签中的一个

3

这是一个关于此问题此问题的变体,我还没有找到解决方案。

mtcars 为例,我想要一个类似下面的图:

ggplot(mtcars, aes(x=cyl,y=mpg)) +
geom_point() +
facet_grid(am ~ gear + carb)

然而,我希望移除与"carb"变量相关的facet x标签,同时保留"gear"变量的标签。以下操作可以实现我的要求,但是会将"NA"放在标签位置,而非完全删除。

ggplot(mtcars, aes(x=cyl,y=mpg)) +
geom_point() +
facet_grid(am ~ gear + carb, labeller = labeller(carb = "")

当然,对我来说使用theme(strip.text.x = element_blank())也是不起作用的,因为我想保留“gear”变量的标签。
最终,我想要同时使用x层进行网格绘制,但是对我来说第二个x层的标签没有实际意义,因此在图表中包括它会分散注意力。
1个回答

2
由于我也不理解原因,以下代码似乎可以工作。该函数返回一个与输入相同长度的空字符串向量。
library(ggplot2)

ggplot(mtcars, aes(x=cyl,y=mpg)) +
  geom_point() +
  facet_grid(am ~ gear + carb, 
             labeller = labeller(carb = function(x) {rep("", length(x))}))

创建于2021年1月12日,使用reprex包(v0.3.0)。

有趣。我太快地浏览了这个答案,它似乎采用了类似的方法。这个方法完美地解决了问题,谢谢! - jeromeResearch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接