如何移除ggh4x包facet_nested中的嵌套分面上层标签
移除嵌套分面的上层标签(保留嵌套结构)
要单独隐藏嵌套分面的上层标签,无需统一修改所有分面标签,可以通过ggh4x中facet_nested的labeller参数实现,针对上层分面指定空标签即可,完全保留嵌套分面的结构。
修改后的代码
library(tidyverse) library(ggh4x) df <- as_tibble(iris) %>% mutate( Nester = if_else(Species == "setosa", "Short Leaves", "Long Leaves"), Nester = factor(Nester) ) %>% pivot_longer(!c(Species, Nester), names_to = "Measure", values_to = "Value") ylim <- df %>% split(.$Nester) %>% map(., ~ range(.$Value)) df %>% ggplot(aes(Measure, Value)) + geom_boxplot() + theme(axis.text.x = element_text(angle = 90, vjust = .5)) + # 关键修改:通过labeller指定上层分面Nester的标签为空 facet_nested(~ Nester + Species, scales = "free_y", independent = "y", labeller = labeller(Nester = ~ "")) + facetted_pos_scales( y = list( Species == "versicolor" ~ scale_y_continuous(limits = ylim[[1]]), Species == "virginica" ~ scale_y_continuous(limits = ylim[[1]], guide = "none"), Species == "setosa" ~ scale_y_continuous(limits = ylim[[2]]) ) )
原理说明
labeller = labeller(Nester = ~ "")专门针对上层分面Nester设置空标签,不会影响下层Species的标签显示- 完全保留
facet_nested的嵌套分面结构,包括独立y轴等原有设置,适配大规模复杂数据场景
内容的提问来源于stack exchange,提问作者maRvin
相关产品推荐
相关产品推荐

