R 在大型pdf文件的每一页上放置多个绘图
我正在尝试将几十个ggplot盒形图打印到pdf文件中。我想要pdf的每页四个绘图。如何使用for循环创建绘图,并以所需的格式结束R 在大型pdf文件的每一页上放置多个绘图,r,pdf,ggplot2,R,Pdf,Ggplot2,我正在尝试将几十个ggplot盒形图打印到pdf文件中。我想要pdf的每页四个绘图。如何使用for循环创建绘图,并以所需的格式结束 names_vec <- colnames(raw_data) pdf(file = 'test1.pdf') for(i in names_vec) { print(ggplot(raw_data, aes(x = Group, y = raw_data[[i]])) + geom_boxplot(na.rm = TRUE) + l
names_vec <- colnames(raw_data)
pdf(file = 'test1.pdf')
for(i in names_vec) {
print(ggplot(raw_data, aes(x = Group, y = raw_data[[i]])) +
geom_boxplot(na.rm = TRUE) +
labs(title = i, y = 'Relative Intensity') +
theme(axis.text.x = element_text(size = 8, angle = 45)))
}
dev.off()
names\u vec编辑响应。这就是你想要的吗?如果没有,请进一步解释。
在这种情况下,以正确的格式提供数据比摆弄ggplot容易得多。一旦数据是长格式而不是宽格式,就不再需要for循环。
此代码生成以下图形:
library(tidyverse)
raw_data = read_delim("stackoverflowdata.csv", col_names = TRUE, delim = ";") %>%
gather(compound, value, -Group)
ggplot(raw_data,aes(x=Group, y =value)) +
geom_boxplot(na.rm = TRUE) +
facet_wrap(vars(compound), scales="free_y") +
labs(y = 'Relative Intensity') +
theme(axis.text.x = element_text(size = 8, angle = 45, hjust = 1 ))
您可以使用gridExtra
软件包中的marrangeGrob()
函数
库(ggplot2)
如果我这样做,所有的情节出于某种原因都是一样的,尽管有不同的情节标题。这很奇怪。你能用你正在使用的部分数据发布一个小的可复制的例子吗?刚刚添加了你的请求。对不起,这是我第二次问问题,所以我的例子不是很好。我编辑了回复,以反映我对你的理解。这对4个情节有效!非常感谢。我如何才能将其提升到下一个级别,并创建多个页面或每个页面创建四个绘图?
library(tidyverse)
raw_data = read_delim("stackoverflowdata.csv", col_names = TRUE, delim = ";") %>%
gather(compound, value, -Group)
ggplot(raw_data,aes(x=Group, y =value)) +
geom_boxplot(na.rm = TRUE) +
facet_wrap(vars(compound), scales="free_y") +
labs(y = 'Relative Intensity') +
theme(axis.text.x = element_text(size = 8, angle = 45, hjust = 1 ))