r - 使用 facet_wrap 在 3 行中设置公共 y 轴值
问题描述
我创建了一个每月情节facet_wrap
所以在图中我有 3 行和 4 列。现在我想为每一行设置我的共同 y 轴,例如第一行应该有一个共同的 y 值,第二行和第三行也是如此。
我试过但做不到。
我用了
ggplot(data = PB,
aes(x = new_date, y = Mean, group = 1)) +
geom_line(aes(color = experiment)) +
theme(legend.title = element_blank()) +
facet_wrap( ~MonthAbb, ncol = 4, scales = "free")
解决方案
问题是scales = "free"
. 删除它,它将在行和列之间设置一个共同的比例(或使用"free_y"
或"free_x"
进行相应调整)。
如果您正在寻找的是每行的单独比例,则需要更多的工作。在 R 处检查此解决方案:如何在 facet_grid 上使用 coord_cartesian 和自由范围的轴,在绘图上分层不可见点以强制显示您想要的外观。否则,一个简单的解决方案可能会考虑使用 gridExtra 并分别绘制每一行,然后合并到一个网格中。
编辑: gridExtra 解决方案看起来像:
library(gridExtra)
g1 <- ggplot(data = PB1, aes(x=new_date, y = Mean, group = 1)) +
geom_line(aes(color = experiment)) +
theme(legend.title = element_blank())
g2 <- ggplot(data = PB2, aes(x=new_date, y = Mean, group = 1)) +
geom_line(aes(color = experiment)) +
theme(legend.title = element_blank())
grid.arrange(g1, g2, nrow=2)