Ham*_*amy 5 plot r ggplot2 boxplot axis-labels
这个问题已经被问一个 几 次,但我读过所有这些,并不能找到答案。
df <- data.frame(f1=factor(rbinom(100, 1, 0.45), label=c("m","w")),
f2=factor(rbinom(100, 1, 0.45), label=c("young","old")),
boxthis=rnorm(100))
ggplot(aes(y=boxthis, x=f2), data=df)
+ geom_boxplot()
+ facet_grid(~f1, scales="free")
Run Code Online (Sandbox Code Playgroud)
这将生成下面的图,但y 轴在 facet column 中共享。在我的真实数据中,这是一个问题,因为每个因素都f1需要一个截然不同的轴范围。free在这里上班有什么技巧吗?

我发现free在使刻面垂直时按预期工作,如下所示,但与使刻面水平相比,这显然看起来很可怕
ggplot(aes(y=boxthis, x=f2), data=df)
+ geom_boxplot()
+ facet_grid(f1~., scales="free")
Run Code Online (Sandbox Code Playgroud)

我会继续在这里发布@DavidArenburg 的回答以结束这个问题。你应该使用facet_wrap而不是facet_grid
df <- data.frame(f1=factor(rbinom(100, 1, 0.35), label=c("m","w")),
f2=factor(rbinom(100, 1, 0.65), label=c("young","old")),
boxthis=rnorm(100))
ggplot(aes(y=boxthis, x=f2), data=df) +
geom_boxplot() +
facet_wrap(~f1, scales="free")
Run Code Online (Sandbox Code Playgroud)
基本上facet_grid试图很好地对齐所有内容,以便在矩形布局中的行和列之间的变量级别相同,并且可以轻松地跨绘图进行比较。facet_wrap不是那么挑剔,只会将图包装成任意数量的行和列。这不是为什么后者允许您指定nrows而ncols前者不允许(它使用条件因子中的级别数)
