2017-07-06 70 views
1

我需要做的正是已經取得此頁上的圖(第二個) http://www.animatedgraphs.co.uk/line.html製作一個時間序列圖,隨着R中的數據

這裏是我的實際代碼滾動:

timemax<-151737 # number of frames (and observations - so no interpolation needed) 
setwd("C:/Users/victo/Downloads/ffmpeg/ffmpeg/bin/") 
vis<-100 # how many time points are on the screen at one time 
gdata<-data.frame('Temps'= data$time,'RH_Xacc'= data$RH_Xacc) 

gname<-paste("g",1:timemax,".tif", sep="") # holds the names of the picture files 
right<-(((1:timemax)<=vis)*100)+(((1:timemax)>vis)*1:timemax) # rightmost time on screen 
left<- right-vis+2 # leftmost time on screen 
leftlab<-200*ceiling((left-1)/200) # leftmost x label 
rightlab<-200*floor(right/200) # rightmost x label 

# draw graphs 
for (i in 1:timemax) { 
tiff(gname[i],width=480) 
plot(gdata$Temps[right[i]:left[i]],gdata$RH_Xacc[right[i]:left[i]],col="red",type="l",ylim=c(-100,200),xlim=c(right[i],left[i]),xaxt="n",ylab="",xlab="time") 
axis(1,at=seq(from=rightlab[i],to=leftlab[i],by=12)) 
lines(gdata$Temps[right[i]:i],gdata$RH_Xacc[right[i]:i]) 
dev.off(dev.cur()) 
} 

# call FFMPEG and make the video 
shell("C:/Users/victo/Downloads/ffmpeg/ffmpeg/bin/ffmpeg.exe -codecs -i g%d.tif -b:v 2048k gdata.mpg",mustWork=FALSE) 

我的代碼似乎工作,直到殼功能。我沒有收到錯誤。代碼只是永遠不會停止運行。我無法獲得所有數據的視頻。有人能告訴我問題在哪裏嗎?如何獲得視頻或者是否有其他人獲得相同的結果?我已經嘗試過庫gganimate,但我沒有成功......我在Rstudio中使用sweave進行此操作。

非常感謝

回答

1

其實,你應該做的可能是運行該命令的第一件事就是:直接和不 C:/Users/victo/Downloads/ffmpeg/ffmpeg/bin/ffmpeg.exe -codecs -i g%d.tif -b:v 2048k gdata.mpg從RStudio主叫shell。你會有更詳細的輸出。

原帖

你有什麼CPU性能分析工具?我懷疑shell命令可能需要大量的時間在計算機上運行,​​因爲在你的榜樣:timemax<-151737而例如有一個較短的timemax timemax<-1000

timemax (=1000)低值和時間執行試試你的計劃碼。我猜你可以推算出執行乘以150所需的總時間(我不是ffmpeg的專家,實際上可能會更長)