2014-11-08 57 views
0
For (i in 1:3){ 

#…Here I determine the following as data.frame: 1) mean_values, 2) Time, 3) medians, 4) stages, 5) quantiles_mean_values, 6) quantiles_medians… 

    pdf(file="test.pdf", height=9) 
    If (i==1){ 
     One<-ggplot(mean_values,aes(x=Time,y=mean_values)) + 
     geom_line(linetype='dashed')+ 
     scale_y_log10()+ 
     geom_line(data = medians, aes(x = Time, y = median), color="blue")+ 
     geom_point(data = stages, aes(x = Time, y =stages))+   
     geom_ribbon(data=quantiles_mean_values,aes(ymin=X25.,ymax=X75.), alpha=0.4,fill="orange")+ 
     geom_ribbon(data=quantiles_medians,aes(ymin=X25., ymax=X75.),alpha=0.2,fill="blue") 
    } 
    if (i==2) { 
     Two<-ggplot(mean_values,aes(x=Time,y=mean_values)) + 
     geom_line(linetype='dashed')+ 
     scale_y_log10()+ 
     geom_line(data = medians, aes(x = Time, y = median), color="blue")+ 
     geom_point(data = stages, aes(x = Time, y =stages))+ 
     geom_ribbon(data=quantiles_mean_values,aes(ymin=X25., ymax=X75.), alpha=0.4,fill="orange")+ 
     geom_ribbon(data=quantiles_medians,aes(ymin=X25., ymax=X75.), alpha=0.2,fill="blue") 
    } 
    if (i==3){ 
     Three<-ggplot(mean_values,aes(x=Time,y=mean_values)) + 
     geom_line(linetype='dashed')+ 
     scale_y_log10()+ 
     geom_line(data = medians, aes(x = Time, y = median),color="blue")+ 
     geom_point(data = stages, aes(x = Time, y =stages))+ 
     geom_ribbon(data=quantiles_mean_values,aes(ymin=X25.,ymax=X75.),alpha=0.4,fill="orange")+ 
     geom_ribbon(data=quantiles_medians,aes(ymin=X25., ymax=X75.),alpha=0.2,fill="blue") 
    } 
} 
grid.arrange(One, Two, Three, ncol=3,nrow=3) 
dev.off() 

当我注释掉geom_ribbon(..)时,一切正常。包括geom_ribbon(...)让我只绘制最后一个数字,即三,并给我一个错误的另外两个,即在循环中添加geom_ribbon仅绘制循环的最后一个图,并给出R中的错误

美学必须是一个长度或相同长度的数据问题:X25。 ,X75

如果我只考虑(我在1:2)它将再次只绘制最后一个数字,即两个,并给我第一个图相同的错误。如果我只是(我在1:1),它会给我的图一没有错误。总的来说,似乎情节一,二,三在循环内相互作用,尽管它们不应该。任何帮助,将不胜感激。

+1

欢迎堆栈溢出。为了更好地帮助我们,请花些时间更清晰地设置问题的格式,包括代码,以便我们重现错误。 – Docconcoct 2014-11-08 04:32:33

回答

0

我认为你正试图问这样一个问题:直到你添加

geom_ribbon(...)

for循环的ggplot工作正常

代码在那里。发生这种情况的可能性是因为for循环不知道在哪里绘制geom_ribbon的数据?

你可以使用这样的代码生成一些随机数据,所以我们可以运行它并找出它?

矩阵(rbinom(10 * 1000,1 .5),NcoI位=(#把你要的号码在这里))