Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在大型pdf文件的每一页上放置多个绘图_R_Pdf_Ggplot2 - Fatal编程技术网

R 在大型pdf文件的每一页上放置多个绘图

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

我正在尝试将几十个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) + 
    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 ))