我需要完成此页面上的图表(第二个) http://www.animatedgraphs.co.uk/line.html
这是我的实际代码:
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)
我的代码似乎一直有效,直到shell函数。我没有收到错误。代码永远不会停止运行。我无法获得包含所有数据的视频。谁能告诉我问题出在哪里?如何获取视频或是否有其他人获得相同的结果?我已经尝试了图书馆gganimate,但我也没有成功......我在Rstudio中使用sweave进行此操作。
非常感谢
答案 0 :(得分: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<-1000
尝试使用低timemax (=1000)
值的程序,并执行代码。我想你可以推断执行所需的总时间乘以150(我不是ffmpeg
的专家,实际上可能更长)