我想在一个循环中制作多个 ggplot 并将它们显示在一个图上。
for ( i in 1:8) {
g <- ggplot(data=mtcars, aes(x=hp, y=wt))+
geom_point()
print(g)
}
我想将上面的图排列在一页上,4行2列。有谁知道这是怎么做到的吗?谢谢。
您可以将所有情节保存在list
然后使用cowplot::plot_grid()
or gridExtra::marrangeGrob()
将它们放在一页或多页中
也可以看看:
在 ggplot2 中创建任意窗格 https://stackoverflow.com/a/51220506/ (patchwork
, multipanelfigure
& egg
包)
for 循环中的多个绘图 https://stackoverflow.com/a/50930640/
library(tidyverse)
# create a list with a specific length
plot_lst <- vector("list", length = 8)
for (i in 1:8) {
g <- ggplot(data = mtcars, aes(x = hp, y = wt)) +
geom_point()
plot_lst[[i]] <- g
}
# Combine all plots
cowplot::plot_grid(plotlist = plot_lst, nrow = 4)
library(gridExtra)
ml1 <- marrangeGrob(plot_lst, nrow = 2, ncol = 2)
ml1
Created on 2018-09-20 by the reprex package https://reprex.tidyverse.org (v0.2.1.9000)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)