カルティク:
私はRMarkdown文書に単一のチャンク内のループのために使用した(ggplot2に)複数のプロットを生成しようとしています。
私は2つのプロットを生成するコードをハードコーディングすると予想されるように、プロットがレンダリングされます。「ハードコード方法」と題した私のコード内のセクションを参照してください。
私はリストをリストし、ループ内の2つのプロットのためのパラメータをロードする場合でも、プロットが表示されません。私はどちらかのいずれかのエラーが表示されません。「ループ法」と題した私のコードのセクションを参照してください。
誰もが上に行くとどのように私はそれを修正することができているものを教えていただけますか?ありがとうございました。
- カルティク。
ここに私のコードは次のとおりです。
---
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)
}