2017-08-30 111 views
2

我有一個數據集需要實時重新繪製爲視頻。 1秒內有1000個數據點。在此之後,我還想重播相同視頻速度的1/10。一個例子如下所示。我在另一個軟件中做了這個,它有一個在GUI界面中做這個的選項。作爲視頻重新繪製圖形

Actual signal in real time

Slowed down graph - 1/10th speed of actual signal

有沒有辦法在R或Python來做到這一點?我在R裏看過一些類似'動畫'的圖書館,但無法得到我想要的。

回答

3

這裏的R中的例子使用animation包:

library(animation) 

set.seed(2) 
dat = data.frame(x=1:50, y=cumsum(rnorm(50))) 

# Two times through the animation, once fast, once slow 
ani.options(interval=rep(c(1/nrow(dat),1/nrow(dat)*10), each=nrow(dat))) 

saveGIF(for(i in 1:(2*nrow(dat))) { 
    plot(dat$x[1:(i %% nrow(dat))], dat$y[1:(i %% nrow(dat))], type="l", 
     ylim=range(dat$y), xlim=range(dat$x), xlab="Time", ylab="Value") 
}, "my_movie.gif") 

enter image description here

+0

這是真正有用的 - 我對ani.options爭論的問題。當它被設置爲0.02並且數據點的數量是50時,它應該將整個圖形繪製成50 * 0.02,即1s,它是這樣做的。我嘗試了0.04,0.06等,它相應地工作。但是當我嘗試將它設置爲0.001時,它應該將整個圖形繪製爲50 * 0.001,即0.05秒吧?它需要5秒代替。對於我的圖表,我想每0.001秒繪製一個數據點,並且實時約10秒的數據。 – ACE

+0

我不確定。計算機可以顯示GIF幀的速度可能會受到限制。 – eipi10

+0

我試着將它保存爲一個視頻而不是gif,它工作。我猜gif有一些限制 – ACE