Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.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
RMarkdown:使用循环在同一块中创建多个GGPlot_R_Ggplot2 - Fatal编程技术网

RMarkdown:使用循环在同一块中创建多个GGPlot

RMarkdown:使用循环在同一块中创建多个GGPlot,r,ggplot2,R,Ggplot2,我试图在RMarkdown文档的单个块中使用for循环生成多个绘图(在ggplot2中) 当我硬编码代码以生成两个绘图时,绘图将按预期呈现。请参阅我的代码中标题为“硬编码方法”的部分 但是,当我将两个图的参数加载到一个列表中并在列表中循环时,这些图不会显示出来。我也没有看到任何错误。请参阅我代码中标题为“循环方法”的部分 谁能告诉我发生了什么事,我怎样才能解决它?谢谢 卡提克 这是我的密码: --- title: "Test for multiple plots" author: "KC"

我试图在RMarkdown文档的单个块中使用for循环生成多个绘图(在ggplot2中)

当我硬编码代码以生成两个绘图时,绘图将按预期呈现。请参阅我的代码中标题为“硬编码方法”的部分

但是,当我将两个图的参数加载到一个列表中并在列表中循环时,这些图不会显示出来。我也没有看到任何错误。请参阅我代码中标题为“循环方法”的部分

谁能告诉我发生了什么事,我怎样才能解决它?谢谢

  • 卡提克
这是我的密码:

---
title: "Test for multiple plots"
author: "KC"
date: "4/3/2020"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

# Hardcoded Method

Sample Plot - One plot at a time 

```{r Multiple Plots separately listed, echo=TRUE, fig.keep="all"}
library(ggplot2)
library(datasets)

combo = c("temperature", "pressure")
ggplot(pressure, 
       mapping=aes(x=base::get(combo[1]), y=base::get(combo[2]))) + 
  geom_point() + 
  labs(x=combo[1], 
       y=combo[2], 
       title=paste("Hardcoded Method:", paste(combo, collapse=" vs ")))

combo = c("pressure", "temperature")
ggplot(pressure, 
       mapping=aes(x=base::get(combo[1]), y=base::get(combo[2]))) + 
  geom_point() + 
  labs(x=combo[1], 
       y=combo[2], 
       title=paste("Hardcoded Method:", paste(combo, collapse=" vs ")))

```

# Loop Method

Now, I use a loop method to generate the same plots.  

```{r Multiple Plots in a loop, echo=TRUE, fig.keep="all"}
library(ggplot2)
library(datasets)
combos = list(c("temperature", "pressure"), c("pressure", "temperature"))

for (combo in combos) {
  # combo = combos[[1]]
  print(paste("Plotting", paste(combo, collapse=" vs ")))
  ggplot(pressure, 
         mapping=aes(x=base::get(combo[1]), y=base::get(combo[2]))) + 
    geom_point() + 
    labs(x=combo[1], 
         y=combo[2], 
         title=paste("Loop Method:", paste(combo, collapse=" vs ")))
}

```

在带有标记文件的代码块中使用
for
循环时,需要显式地
打印()。因此,以下代码不起作用:

for (i in length(x)) {
    ggplot(...)
}
您需要转换为以下内容:

for (i in length(x)) {
    p <- ggplot(...)
    print(p)
}
for(长度为i(x)){
P