如何在R Markdown中的列表中打印所有记录的图

脊柱

这是我在StackOverflow上遇到的第一个问题。如果我做错了,请告诉我以改善下一个问题。

我从R Markdown开始,并且在使用for循环打印记录的图时遇到一些麻烦。好吧,在运行Rmarkdown文件之前,我运行了R函数,该函数生成了几个数据框和图的列表。

为了简化起见,我在此处仅列出了绘图对象,并简化了该列表的可复制示例。

x <- c(1,2,3,4,5)
y <- c(1,2,3,4,5)


plot(x,y)
abline(h=1)
p1.1 <- recordPlot()

plot(x,y)
abline(h=3)
p1.2 <- recordPlot()

plot(x,y)
abline(h=4)
p2.1 <- recordPlot()

plot(x,y)
abline(h=6)
p2.2 <- recordPlot()

lista<-NULL
lista["p1.1"] <- list(p1.1)
lista["p1.2"] <- list(p1.2)
lista["p2.1"] <- list(p2.1)
lista["p2.2"] <- list(p2.2)

save(new_list, file = "Data.RData")

然后我将此列表加载到R Markdown文件中,如下所示:

```{r setup}
knitr::opts_chunk$set(echo = TRUE,fig.keep = "all")
load("Data.RData")```

我尝试像这样打印这些图:

```{r,echo=FALSE, results='asis',fig.keep='all'}
for (i in c(1,2)){
 for(j in c(1,2)){
  print(lista[[paste(paste("p",i,sep=""),j,sep=".")]])
 }
}```

当我运行Knitr来获取HTML文件时,结果是只显示了for循环的最后一个图。

我尝试用lapply代替for循环,但是对我来说不起作用。我也尝试使用print(replayPlot(lista[[paste(paste(paste("p",i,sep=""),".",sep=""),j,sep="")]]))具有相同结果的replayPlot函数

有什么方法可以解决此问题,而无需修改先前生成图列表的R函数?

感谢您的回答。

瓦尔迪

使用ggplot对象列表可能会使用正确的语法,但是使用基础plot对象时,您需要调用该语法,以plot.new()使列表中的下一个图不会覆盖前一个图:

---
title: "test"
output: html_document
---

## Define plots

```{r}
x <- c(1,2,3,4,5)
y <- c(1,2,3,4,5)

plot.new()
plot(x,y)
abline(h=1)
p1.1 <- recordPlot()

plot.new()
plot(x,y)
abline(h=3)
p1.2 <- recordPlot()

plot.new()
plot(x,y)
abline(h=4)
p2.1 <- recordPlot()

plot.new()
plot(x,y)
abline(h=6)
p2.2 <- recordPlot()

lista<-NULL
lista["p1.1"] <- list(p1.1)
lista["p1.2"] <- list(p1.2)
lista["p2.1"] <- list(p2.1)
lista["p2.2"] <- list(p2.2)

```

# Print list

```{r,echo=F}
for (i in c(1,2)){
 for(j in c(1,2)){
  # Needed to avoid overwrite
  plot.new()
  print(lista[[paste(paste("p",i,sep=""),j,sep=".")]])
 }
}
```

请注意,您可以简化循环的语法:

for(p in lista) {
  plot.new()
  print(p)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在R Markdown中添加QQ图?

来自分类Dev

如何在Markdown中以彩色打印R宏?

来自分类Dev

如何在R Markdown中打印文件路径

来自分类Dev

如何在Python 3中的defaultdict中打印所有索引的列表?

来自分类Dev

如何在一行中打印列表中的所有字符串?

来自分类Dev

批准后如何打印列表中的所有元素?

来自分类Dev

如何在R中的单个字符串中打印矢量的所有元素?

来自分类Dev

如何在编辑器中显示或打印大型python列表的所有元素

来自分类Dev

R-如何在循环列表中打印进度?

来自分类Dev

如何在 R Markdown 中呈现 POSIXlt?

来自分类Dev

如何在R中的小标题内的列表中的所有行中选择特定元素

来自分类Dev

如何在单行中显示所有绘图图?

来自分类Dev

如何在R中创建曲面图

来自分类Dev

如何在R中绘制羽毛图?

来自分类Dev

如何在R中添加图的符号

来自分类Dev

如何在R中绘制平均图

来自分类Dev

如何在R中绘制此图?

来自分类Dev

如何在R中创建累积图

来自分类Dev

如何在R中绘制饼图

来自分类Dev

如何在不知道列表大小的情况下使用redis-cli打印列表中的所有值?

来自分类Dev

C ++:如何在向量向量中打印所有元素

来自分类Dev

如何在cmake中打印所有编译选项

来自分类Dev

如何在Django中打印单个对象的所有值?

来自分类Dev

如何在Lua表中打印所有值?

来自分类Dev

如何在JOptionPane中打印所有数组元素?

来自分类Dev

C ++:如何在向量向量中打印所有元素

来自分类Dev

如何在 node.js 中打印所有 cookie?

来自分类Dev

如何在R中打印双引号(“)

来自分类Dev

如何在R中打印组合?