`facet_wrap` 中相对两侧的 y 轴标签

jna*_*nat 0 r ggplot2 facet-wrap facet-grid

我想绘制facet_wrap2 个组中的一组,并将 y 轴标签放在左图的左侧,将右侧的标签放在右图的右侧。

这是正常行为。左侧的两个 y 轴标签。

library(tidyverse)

mtcars %>% mutate(let = rep(LETTERS[1:2], times = nrow(mtcars)/2),
                       make = rownames(mtcars))  %>% 
ggplot(aes(y = make, x = mpg)) + 
geom_point() +
facet_wrap(~ let, scales = "free")
Run Code Online (Sandbox Code Playgroud)

创建于 2023-05-15,使用reprex v2.0.2

我希望将B图 y 轴标签放在图的右侧,但将A轴标签保留在图的左侧。这可能吗?

ste*_*fan 5

一种选择是ggh4x通过ggh4x::facetted_pos_scales允许单独设置每个面板的比例的软件包:

library(ggplot2)
library(dplyr, warn=FALSE)
library(ggh4x)

mtcars %>%
  mutate(
    let = rep(LETTERS[1:2], times = nrow(mtcars) / 2),
    make = rownames(mtcars)
  ) %>%
  ggplot(aes(y = make, x = mpg)) +
  geom_point() +
  facet_wrap(~let, scales = "free") +
  facetted_pos_scales(
    y = list(
      let == "B" ~ scale_y_discrete(position = "right")
    )
  )
Run Code Online (Sandbox Code Playgroud)