如何更改 ggplot2facet_grid 中特定方面的 x 轴限制?

问题描述 投票:0回答:1

我正在使用 R 中的

facet_grid
创建一个
ggplot2
绘图。

下面使用

mtcars
数据集可重现的示例。

我想手动更改仅与 4 缸汽车对应的面的 x 轴限制。这是我的最小可重现示例:

enter image description here

library(ggplot2)
library(dplyr)

mtcars <- mtcars %>%
  mutate(cyl = as.factor(cyl), 
         gear = as.factor(gear), 
         carb = as.factor(carb))

# Plot the empirical CDF with different lines for each carb type, and facet by cyl and gear
ggplot(mtcars, aes(x = mpg, color = carb, linetype = carb)) +
  stat_ecdf(geom = "step") +
  theme_minimal() +
  facet_grid(cyl ~ gear, scales = "free")

我想将

cyl
为 4 的面的 x 轴限制设置为最大值 25,同时保持其他面的 x 轴限制不变。我怎样才能做到这一点?

任何帮助将不胜感激!

r ggplot2 facet-wrap facet-grid
1个回答
1
投票

您可以使用

ggh4x::facetted_pos_scales
单独设置每个面板的比例,即,为了获得所需的结果,您可以将网格第二列的上限设置为 25,即
gear = 4
,如下所示:

mtcars <- mtcars |> 
  transform(
    cyl = as.factor(cyl),
    gear = as.factor(gear),
    carb = as.factor(carb)
  )

library(ggplot2)
library(ggh4x)

ggplot(mtcars, aes(x = mpg, color = carb, linetype = carb)) +
  stat_ecdf(geom = "step") +
  theme_minimal() +
  facet_grid(cyl ~ gear, scales = "free") +
  ggh4x::facetted_pos_scales(
    x = list(
      gear == 4 ~ scale_x_continuous(
        limits = c(NA, 25)
      )
    )
  )

© www.soinside.com 2019 - 2024. All rights reserved.