我想知道是否有人可以帮助我获取此代码以返回多个图形。我希望每个图形都被标记为“plot_i”(plot_G1、plot_G2)。我不知道如何让我的函数返回这个。任何帮助将不胜感激!
library(lubridate)
library(tidyverse)
#Dummy Data Frame
DateTime <- c("1999/01/01 11:00","1999/01/02 11:00","1999/01/03 11:00","1999/01/01 11:00","1999/01/02 11:00","1999/01/03 11:00","1999/01/01 11:00","1999/01/02 11:00","1999/01/03 11:00")
Step <- c("Condition1","Condition1","Condition1","Condition2","Condition2","Condition2","Condition3","Condition3","Condition3")
G1 <- runif(9)
G2 <- runif(9)
G3 <- runif(9)
G4 <- runif(9)
test_df <- data.frame(DateTime = DateTime, Step = Step, G1 = G1, G2 = G2, G3 = G3, G4 = G4)
test_df$DateTime.lub <- ymd_hm(test_df$DateTime)
test_df
#Want to create a function that will provide graphs for every G1, G2, G3 and G4 and return them!
list <- colnames(test_df)
list <- list[-c(1,2,7)]
list
#test plot - works
ggplot(data = test_df, aes(x= DateTime.lub, y = G1))+
geom_line(aes(size = Step))
#Function does not return graph
for (i in list){
ggplot(data = test_df, aes(x= DateTime.lub, y = i))+
geom_line(aes(colour = Step))
}
答案 0 :(得分:1)
试试这个:
library(ggplot2)
#Function does not return graph
for (i in list){
var <- sym(i)
print(ggplot(data = test_df, aes(x= DateTime.lub, y = !!var))+
geom_line(aes(colour = Step))+
ggtitle(paste0('plot_',i)))
}
答案 1 :(得分:0)
对于使用此功能的其他人,如果您想导出图表,请参见以下内容:
import React, { useState } from 'react';
export default function App(props) {
const [markdown, setMarkDown] = useState("");
const updateMarkdown = (markdown) => {
setMarkDown(markdown);
}
return (
<div className="App">
<div className="container">
<div className="row mt-4">
<div className="col text-center">
<h1>
{" "}
<Badge className="text-align-center" variant="light">
Markdown Previewer
</Badge>
</h1>
</div>
</div>
<div className="row mt-4">
<div className="col-md-6">
{" "}
<div className="col text-center">
<h4>
<Badge className="text-align-center" variant="secondary">
Markdown Input
</Badge>
</h4>
</div>
<div className="input" style={inputStyle}>
<textarea
className="input"
style={inputStyle}
value={markdown}
onChange={(e) => {
updateMarkdown(e.target.value);
}}
>
</textarea>
</div>
</div>
<div className="col-md-6">
{" "}
<div className="col text-center">
<h4>
<Badge className="text-align-center" variant="secondary">
Preview
</Badge>
</h4>
</div>
<div
style={outputStyle}
dangerouslySetInnerHTML={{
__html: marked(markdown),
}}
></div>
</div>
</div>
</div>
</div>
)
}