使用 ggplot 和 marrangeGrob 在多个页面上绘制多个图形
Multiple graphs over multiple pages using ggplot and marrangeGrob
虽然这可能是重复的,但我想知道我的问题的解决方案。我尝试 运行 问题 Multiple graphs over multiple pages using ggplot 中的代码,但我不知道数据是如何构建的,因此无法 运行 它。
我想绘制多个图形并将它们打印在 pdf 的多个页面上。我用 mtcars 试过了:
library(ggplot2)
library(reshape2)
library(plyr)
library(gridExtra)
mtcars2 = melt(mtcars, id.vars='mpg')
mtcars2$group[mtcars2$variable %in% c("cyl", "disp", "hp", "drat")] <- "A"
mtcars2$group[mtcars2$variable %in% c("wt", "qsec", "vs", "am")] <- "B"
mtcars2$group[mtcars2$variable %in% c("gear", "cyl")] <- "C"
p = ggplot(mtcars2) +
geom_jitter(aes(value,mpg, colour=variable)) +
geom_smooth(aes(value,mpg, colour=variable), method="lm", se=FALSE) +
scale_y_continuous(limits = c(0, 60))+
labs(x = "Percentage cover (%)", y = "Number of individuals (N)")
plots = dlply(mtcars2, "group", `%+%`, e1 = p)
ml = do.call(marrangeGrob, c(plots, list(nrow=2, ncol=2)))
ggsave("multipage.pdf", ml)
产生错误 Error in (function (grobs, ncol, nrow, ..., top = quote(paste("page", : argument "grobs" is missing, with no default
。我如何获得此脚本 运行ning?
您可以使用 ggplus 软件包:
https://github.com/guiastrennec/ggplus
我特别觉得它比弄乱 ArrageGrobs/gridExtra 更容易;它会自动为您将各个方面放在几个页面中。
由于您将初始绘图保存为 "p",您的代码将如下所示:
# Plot on multiple pages
facet_multiple(plot = p,
facets = 'group', #****
ncol = 2,
nrow = 1)
而不是以前版本的 gridExtra 中要求的 do.call()
,请尝试 marrangeGrob(grobs = plots, nrow=2, ncol=2)
虽然这可能是重复的,但我想知道我的问题的解决方案。我尝试 运行 问题 Multiple graphs over multiple pages using ggplot 中的代码,但我不知道数据是如何构建的,因此无法 运行 它。 我想绘制多个图形并将它们打印在 pdf 的多个页面上。我用 mtcars 试过了:
library(ggplot2)
library(reshape2)
library(plyr)
library(gridExtra)
mtcars2 = melt(mtcars, id.vars='mpg')
mtcars2$group[mtcars2$variable %in% c("cyl", "disp", "hp", "drat")] <- "A"
mtcars2$group[mtcars2$variable %in% c("wt", "qsec", "vs", "am")] <- "B"
mtcars2$group[mtcars2$variable %in% c("gear", "cyl")] <- "C"
p = ggplot(mtcars2) +
geom_jitter(aes(value,mpg, colour=variable)) +
geom_smooth(aes(value,mpg, colour=variable), method="lm", se=FALSE) +
scale_y_continuous(limits = c(0, 60))+
labs(x = "Percentage cover (%)", y = "Number of individuals (N)")
plots = dlply(mtcars2, "group", `%+%`, e1 = p)
ml = do.call(marrangeGrob, c(plots, list(nrow=2, ncol=2)))
ggsave("multipage.pdf", ml)
产生错误 Error in (function (grobs, ncol, nrow, ..., top = quote(paste("page", : argument "grobs" is missing, with no default
。我如何获得此脚本 运行ning?
您可以使用 ggplus 软件包:
https://github.com/guiastrennec/ggplus
我特别觉得它比弄乱 ArrageGrobs/gridExtra 更容易;它会自动为您将各个方面放在几个页面中。
由于您将初始绘图保存为 "p",您的代码将如下所示:
# Plot on multiple pages
facet_multiple(plot = p,
facets = 'group', #****
ncol = 2,
nrow = 1)
而不是以前版本的 gridExtra 中要求的 do.call()
,请尝试 marrangeGrob(grobs = plots, nrow=2, ncol=2)