我想要使用迭代函数显示一组图。不幸的是,当我将这些图放入列表并尝试再次调用这些图时,只显示最后一个图。
如果你们可以帮助我,附上我的代码。
`Production<-read.csv("Production.csv")
dataset<-read.csv("Try.csv")
Q<-list()
for (i in 1:2){
Hourly<-loadprofile[,1]
Average<-loadprofile[,2+i-1]
Max<-loadprofile[,368+i-1]
Min<-loadprofile[,734+i-1]
hour<-dataset[,3*i-2]
Company<-dataset[,3*i-1]
Production<-dataset[,3*i]
Q[[length(Q)+1+i]]<-ggplot()+
geom_bar(data=dataset,aes(x=hour, y=Production,
fill=Company),stat="identity") +
geom_line(data=production,aes(x=Hourly, y=Average),stat="identity")+
geom_ribbon(data=production,aes(x=Hourly,ymin=Min, ymax=Max), alpha=0.5,
fill='blue', stat="identity")+
ggtitle("1/1/2017")
}
我有60个不同的图,但我现在使用两个迭代循环来测试它。当我输入命令Q [[2]]时,只显示第二个图形而不是第一个图形。我试图将这些图表显示在一个页面中,并希望得到任何帮助。
答案 0 :(得分:0)
你必须在其他地方遇到一些问题,因为你可以从中看到:
a = (1:10)
b = (1:10)
df1 = data.frame(a=a,b=b)
df2 = data.frame(a=b,b=-a)
Q = list()
for (i in 1:2){
if (i == 1) {Qi = ggplot(df1, aes(x = a, y = b))+geom_point()}
if (i == 2 ) {Qi = ggplot(df2, aes(x = a, y = b))+geom_point()}
Q[[i]] = Qi
}
Q[[1]]
Q[[2]]
实际上可以工作并打印两个不同的图形。 &#34;索引&#34;在你的函数中似乎有点混乱(例如,[,368+i-1]
,[,3*i-2]]
,所以也许你有问题。