ggplot Complex GridExtra 布局
ggplot Complex GridExtra Layout
我想按以下方式布置三个地块:
[FirstPlot]
[2nd] [3rd]
第一个地块位于第二个和第三个地块之上。第一个地块的宽度是第二个和第三个地块的两倍。现在让我们生成虚拟数据:
library(gridExtra)
library(grid)
library(ggplot2)
library(lattice)
plot1 <- qplot(1, 1)
plot2 <- qplot(1, 1)
plot3 <- qplot(1, 1)
lay <- rbind(c(1,1),
c(2,3))
绘制出来的语法应该是:
grid.arrange(grobs = c(plot1, plot2, plot3),
layout_matrix = lay)
其实不应该,因为它不起作用。我收到以下错误。命令应该是什么来策划这一切?我想我弄错了 grobs
部分。
Error in t:b : NA/NaN argument
grobs 参数需要 list() 而不是 c() :
grid.arrange(grobs = list(plot1, plot2, plot3),
layout_matrix = lay)
?grid.arrange
grobs list of grobs
有一个简单的解决方法。使用 grobs = list(plot1, plot2, plot3)
我想提供一个 patchwork
解决方案,因为它非常棒:
library(patchwork)
library(ggplot2)
plot1 <- ggplot(mtcars, aes(wt, mpg)) + geom_point()
plot2 <- ggplot(diamonds, aes(cut, price)) + geom_boxplot()
plot3 <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) + geom_point()
# One way of doing it
plot1 + (plot2 + plot3) + plot_layout(ncol = 1)
# Another, alternative solution
plot1 /
(plot2 | plot3)
哪个returns:
我想按以下方式布置三个地块:
[FirstPlot]
[2nd] [3rd]
第一个地块位于第二个和第三个地块之上。第一个地块的宽度是第二个和第三个地块的两倍。现在让我们生成虚拟数据:
library(gridExtra)
library(grid)
library(ggplot2)
library(lattice)
plot1 <- qplot(1, 1)
plot2 <- qplot(1, 1)
plot3 <- qplot(1, 1)
lay <- rbind(c(1,1),
c(2,3))
绘制出来的语法应该是:
grid.arrange(grobs = c(plot1, plot2, plot3),
layout_matrix = lay)
其实不应该,因为它不起作用。我收到以下错误。命令应该是什么来策划这一切?我想我弄错了 grobs
部分。
Error in t:b : NA/NaN argument
grobs 参数需要 list() 而不是 c() :
grid.arrange(grobs = list(plot1, plot2, plot3),
layout_matrix = lay)
?grid.arrange
grobs list of grobs
有一个简单的解决方法。使用 grobs = list(plot1, plot2, plot3)
我想提供一个 patchwork
解决方案,因为它非常棒:
library(patchwork)
library(ggplot2)
plot1 <- ggplot(mtcars, aes(wt, mpg)) + geom_point()
plot2 <- ggplot(diamonds, aes(cut, price)) + geom_boxplot()
plot3 <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) + geom_point()
# One way of doing it
plot1 + (plot2 + plot3) + plot_layout(ncol = 1)
# Another, alternative solution
plot1 /
(plot2 | plot3)
哪个returns: