ggplot2 分类 x 轴的不同面宽度

use*_*648 3 r facet ggplot2

我正在绘制分类数据的不同方面:

df <- as.data.frame(as.factor(c("A","B","C","D","E","F")))
names(df) <- "Xvar"
df$Yvar <- c(2,1,4,5,3,7)
df$facet <- c(rep("facet 1",2),rep("facet 2",4))

ggplot(df, aes(x=Xvar, y=Yvar, group=1)) +
  geom_line() +
  facet_wrap(~facet, scales="free_x")
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我怎样才能使仅包含两个类别的方面 1 的大小是包含四个类别的方面 2 的一半?即每个面的宽度与分类 x 轴数据点的数量成正比?我试过scales="free_x"无济于事。

Eri*_*att 5

如果您愿意使用facet_grid代替facet_wrap,则可以使用space参数来执行此操作。

ggplot(df, aes(x=Xvar, y=Yvar, group=1)) +
  geom_line() +
  facet_grid(~facet, scales="free_x", space = "free_x")
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明