RMarkdown:在同一块使用环多ggplots

KARTHIK:

我想一个RMarkdown文档中使用for循环单块内产生多条曲线(在GGPLOT2)。

当我硬编码代码来生成两个地块,该地块被渲染为预期。见我的代码名为“硬编码的方法”一节。

但是,当我加载在通过列表的列表和循环两个地块的参数,该地块都没有显示出来。我没有看到任何错误,无论是。请参阅我的代码名为“环法”一节。

谁能告诉我是怎么回事,如何我能解决这个问题?谢谢。

  • KARTHIK。

这里是我的代码:

---
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 ")))
}

```
chemdork123:

当使用for与降价文件的代码块循环,你需要明确print()的情节。所以,下面的代码将无法正常工作:

for (i in length(x)) {
    ggplot(...)
}

你需要转换为这样的事情:

for (i in length(x)) {
    p <- ggplot(...)
    print(p)
}

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章