R ggplot将镶嵌面放置在两行镶嵌面之间

R ggplot将镶嵌面放置在两行镶嵌面之间,r,ggplot2,R,Ggplot2,我有9个图,每个图中有3个时间序列,其中一个图只包含一条曲线,我想把它放在包含其他8个图的两行之间的参考图。有没有一个简单的方法? 我使用了facet\u wrap(~density,nrow=2)但是我得到了一行5个图,另一行4个图。我确信其他人也有这个问题,是否有一个简单的方法来组织这个参考图的位置,或者我必须创建两个单独的图并覆盖它们?否则,我可能不得不在所有其他图中移动此参考图,但它似乎是冗余信息 这是我目前的结果,但正如你所看到的,它的布局不是很好。 您要查找的图形可以使用gridAr

我有9个图,每个图中有3个时间序列,其中一个图只包含一条曲线,我想把它放在包含其他8个图的两行之间的参考图。有没有一个简单的方法? 我使用了
facet\u wrap(~density,nrow=2)
但是我得到了一行5个图,另一行4个图。我确信其他人也有这个问题,是否有一个简单的方法来组织这个参考图的位置,或者我必须创建两个单独的图并覆盖它们?否则,我可能不得不在所有其他图中移动此参考图,但它似乎是冗余信息

这是我目前的结果,但正如你所看到的,它的布局不是很好。

您要查找的图形可以使用gridArrange从 包裹这是 使用来自

接下来,我们根据需要构建这两个图形

g1 <- graphic %+% dplyr::filter(storms, category == -1) + theme(legend.position = "none")
g2 <- graphic %+% dplyr::filter(storms, category != -1)

您要查找的图形可以使用gridArrange从 包裹这是 使用来自

接下来,我们根据需要构建这两个图形

g1 <- graphic %+% dplyr::filter(storms, category == -1) + theme(legend.position = "none")
g2 <- graphic %+% dplyr::filter(storms, category != -1)

如果我正确理解了这个问题,您可以使用适当的刻面变量重新格式化数据,以引入一行新的参考面板

library(ggplot2)

d <- data.frame(x=rep(1:10, 8), y = rnorm(80), 
                f=gl(8,10, ordered = TRUE))
d$f1 <- factor(d$f <= 4, labels=c(1,3))
d$f2 <- as.numeric(d$f) %% 4

d2 <- data.frame(x=1:10, y=0, f1 = 2)

ggplot(d, aes(x,y)) + 
  geom_point(aes(colour=f)) + 
  geom_point(data=d2, colour="black") + 
  facet_grid(f1~f2)
库(ggplot2)

d如果我正确理解了这个问题,您可以使用适当的切面变量重新格式化数据,以引入一行新的参考面板

library(ggplot2)

d <- data.frame(x=rep(1:10, 8), y = rnorm(80), 
                f=gl(8,10, ordered = TRUE))
d$f1 <- factor(d$f <= 4, labels=c(1,3))
d$f2 <- as.numeric(d$f) %% 4

d2 <- data.frame(x=1:10, y=0, f1 = 2)

ggplot(d, aes(x,y)) + 
  geom_point(aes(colour=f)) + 
  geom_point(data=d2, colour="black") + 
  facet_grid(f1~f2)
库(ggplot2)

D我不太清楚你想做什么,但是我觉得你需要<代码> GRIDXTRA/<代码> @ SRiver,我已经添加了一个屏幕截图,给你一个你所要求的想法,但是你也可以考虑把“控制”线作为其他方面的背景,如图所示:我认为最简单的方法是绘制单独的图,并将它们放在一起,如@BLT中所示,这似乎是一个很好的解决方案,但我的参考图一直被绘制在一个单独的方面。我不太明白你想做什么,但在我看来,你需要<代码> GRIDXTRA/<代码> @ SRiver,我已经添加了一个屏幕截图,给你一个你所要求的想法,但是你也可以考虑把“控制”线作为其他方面的背景,如图所示:我认为最简单的方法是绘制单独的图,并将它们放在一起,如@BLT中所示,这似乎是一个很好的解决方案,但我的参考图总是在一个单独的方面绘制。这不是布局矩阵的预期用途。如果您想控制相对大小,最好执行类似于
grid.arrange(g1,g2,widths=c(3,5))
的操作。另外,在这种特殊情况下,我建议使用将两个图对齐的
egg::ggarrange()
,这不是布局矩阵的预期用途。如果您想控制相对大小,最好执行类似于
grid.arrange(g1,g2,widths=c(3,5))
的操作。另外,在这种特殊情况下,我建议使用将两个图对齐的
egg::ggarrange()
。感谢您的建议,但是这会增加更多的图,而我正在尝试优化房地产。这就是我对“两排面之间的放置”的理解。感谢您的建议,但是这会增加更多的图,相反,我试图优化房地产。这就是我所理解的“两排面之间的位置”
library(ggplot2)

d <- data.frame(x=rep(1:10, 8), y = rnorm(80), 
                f=gl(8,10, ordered = TRUE))
d$f1 <- factor(d$f <= 4, labels=c(1,3))
d$f2 <- as.numeric(d$f) %% 4

d2 <- data.frame(x=1:10, y=0, f1 = 2)

ggplot(d, aes(x,y)) + 
  geom_point(aes(colour=f)) + 
  geom_point(data=d2, colour="black") + 
  facet_grid(f1~f2)