RMarkdown: Múltiples ggplots en el uso de bucle mismo fragmento

Karthik:

Estoy tratando de generar múltiples parcelas (en ggplot2) utilizando un bucle dentro de un solo trozo en un documento RMarkdown.

Cuando codificar el código para generar las dos parcelas, las parcelas se representan como esperaban. Vea la sección en mi código titulado "Método Hardcoded".

Sin embargo, cuando la carga de los parámetros para las dos parcelas en una lista y bucle a través de la lista, las parcelas no están apareciendo. No veo ningún error tampoco. Por favor, véase la sección de mi código titulado "Método de lazo".

¿Puede alguien por favor dígame lo que está pasando y cómo puedo solucionarlo? Gracias.

  • Karthik.

Aquí está mi código:

---
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:

Cuando se utiliza un forbucle en un trozo de código con los archivos de rebajas, es necesario explícitamente print()la trama. Por lo tanto, el siguiente código no funcionaría:

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

Es necesario para convertir a algo como esto:

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

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=399077&siteId=1
Recomendado
Clasificación