2014-02-20 125 views
0

我是r新手,希望能夠使用循環函數創建圖形。在循環中創建圖形r

我希望創建288個圖形,並且數據是堆疊格式。每個圖形都是由30行數據創建的,所以我的數據總共有288 * 30 = 8640行。

我成功地創建的第一曲線圖使用此代碼 -

# setting range and table 
xrange <- range(0,300) 
    yrange <- range(1,15) 
    plot(xrange, yrange, type="n", xlab="Time in seconds", ylab="Performance") 

# adding lines 
lines(df$TimeStamp0[1:30],df$Pur[1:30], type="o", pch=4, col="red") 
lines(df$TimeStamp0[1:30],df$Yel[1:30], type="o", pch=4, col="blue") 
lines(df$PartTimeStamp0[1:30],df$PartPur[1:30], type="o", pch=20, col="green") 
lines(df$PartTimeStamp0[1:30],df$PartYel[1:30], type="o", pch=20, col="orange") 

有四行四個不同性能的組件。我希望創建一個循環來獲取此語法,以便在整個數據集中每30行生成一個圖形。我嘗試了「for循環」命令(見下文),但無法使其工作。

for(i in 1:288) { 
    startRow=1, endRow=startRow+29 
    #pasted the above graph creation syntax 
    } 

我真的很感謝任何幫助,謝謝!

+0

你只是拷貝在同一行循環?你應該改變各種'[1:30]'到'[startRow:endRow]' – nico

+4

whatcha要用288個圖表做什麼? – rawr

+0

你的循環從1:288運行,用給定的數字生成變量'i',但我沒有看到我在你的循環代碼中的任何地方。我也沒有看到你更新每個循環的startRow。你真的需要做兩個中的一個。現在,這個循環只產生了288次,不做任何事情,並且一遍又一遍地製作相同的圖形。 – TomR

回答

2

既然你想每30行一個圖表,你不想使用範圍1:288;相反,你應該使用:

for(i in seq(1, 8640, by=30){ 

此外,您需要更改爲「1」,在「STARTROW = 1」到「我」,即

startRow=i 
endRow=startRow+29 
+0

是的,你對我的循環代碼中的錯誤是正確的,現在一切正常,感謝這麼多!! :) – user3334446

+0

@ user3334446:如果它解決了你的問題,你應該將答案標記爲接受。 – nico