制作多面板结构,之后插入不同大小的图形(共16个)
Make a multiple panel structure to insert graphs of different sizes afterwards (16 in total)
我制作了 15 个饼图和一个折线图。
我现在的目标是按照图上的结构把它们排好
有没有像
这样的方法
par(mfrow=c(2,2))
构建这样一个结构,然后我可以在其中绘制我制作的所有图表?接受在这种情况下,我希望能够确定地块的大小。
试试这个,
library(gridExtra)
library(grid)
l <- cbind(c(5:1, NA), rbind(6:10, matrix(16, 5, 5)), c(11:15, NA))
# dummy placeholders for illustration
plots <- lapply(1:16, function(ii)
grobTree(rectGrob(), textGrob(paste("plot", ii))))
grid.arrange(grobs=plots, layout_matrix=l)
对于实际情节,尝试
plots <- replicate(16, ggplot(), simplify = FALSE)
或您的 16 个地块(或网格 grob)的列表,
您可能想提取某种类型矩阵的维度,但这种冗长的方法会让您到达那里,并让您看到在大小和位置方面发生了什么 - 很确定它是 [=11 的包装器=] 或 gridExtra
:
library(cowplot)
p1 <- ggplot(mtcars, aes(x = hp, y = mpg)) + geom_point()
ggdraw() +
draw_plot(p1, 0, 0.1, 0.1, 0.1) +
draw_plot(p1, 0, 0.2, 0.1, 0.1) +
draw_plot(p1, 0, 0.3, 0.1, 0.1) +
draw_plot(p1, 0, 0.4, 0.1, 0.1) +
draw_plot(p1, 0, 0.5, 0.1, 0.1) +
draw_plot(p1, 0.1, 0.5, 0.1, 0.1) +
draw_plot(p1, 0.2, 0.5, 0.1, 0.1) +
draw_plot(p1, 0.3, 0.5, 0.1, 0.1) +
draw_plot(p1, 0.4, 0.5, 0.1, 0.1) +
draw_plot(p1, 0.5, 0.5, 0.1, 0.1) +
draw_plot(p1, 0.6, 0.5, 0.1, 0.1) +
draw_plot(p1, 0.7, 0.5, 0.1, 0.1) +
draw_plot(p1, 0.7, 0.4, 0.1, 0.1) +
draw_plot(p1, 0.7, 0.3, 0.1, 0.1) +
draw_plot(p1, 0.7, 0.2, 0.1, 0.1) +
draw_plot(p1, 0.7, 0.1, 0.1, 0.1) +
draw_plot(p1, 0.1, 0, 0.6, 0.5) # this is the big one
我制作了 15 个饼图和一个折线图。
我现在的目标是按照图上的结构把它们排好
有没有像
这样的方法par(mfrow=c(2,2))
构建这样一个结构,然后我可以在其中绘制我制作的所有图表?接受在这种情况下,我希望能够确定地块的大小。
试试这个,
library(gridExtra)
library(grid)
l <- cbind(c(5:1, NA), rbind(6:10, matrix(16, 5, 5)), c(11:15, NA))
# dummy placeholders for illustration
plots <- lapply(1:16, function(ii)
grobTree(rectGrob(), textGrob(paste("plot", ii))))
grid.arrange(grobs=plots, layout_matrix=l)
对于实际情节,尝试
plots <- replicate(16, ggplot(), simplify = FALSE)
或您的 16 个地块(或网格 grob)的列表,
您可能想提取某种类型矩阵的维度,但这种冗长的方法会让您到达那里,并让您看到在大小和位置方面发生了什么 - 很确定它是 [=11 的包装器=] 或 gridExtra
:
library(cowplot)
p1 <- ggplot(mtcars, aes(x = hp, y = mpg)) + geom_point()
ggdraw() +
draw_plot(p1, 0, 0.1, 0.1, 0.1) +
draw_plot(p1, 0, 0.2, 0.1, 0.1) +
draw_plot(p1, 0, 0.3, 0.1, 0.1) +
draw_plot(p1, 0, 0.4, 0.1, 0.1) +
draw_plot(p1, 0, 0.5, 0.1, 0.1) +
draw_plot(p1, 0.1, 0.5, 0.1, 0.1) +
draw_plot(p1, 0.2, 0.5, 0.1, 0.1) +
draw_plot(p1, 0.3, 0.5, 0.1, 0.1) +
draw_plot(p1, 0.4, 0.5, 0.1, 0.1) +
draw_plot(p1, 0.5, 0.5, 0.1, 0.1) +
draw_plot(p1, 0.6, 0.5, 0.1, 0.1) +
draw_plot(p1, 0.7, 0.5, 0.1, 0.1) +
draw_plot(p1, 0.7, 0.4, 0.1, 0.1) +
draw_plot(p1, 0.7, 0.3, 0.1, 0.1) +
draw_plot(p1, 0.7, 0.2, 0.1, 0.1) +
draw_plot(p1, 0.7, 0.1, 0.1, 0.1) +
draw_plot(p1, 0.1, 0, 0.6, 0.5) # this is the big one