Czy istnieje łatwy sposób na utworzenie "filmu" poprzez zszycie razem kilku wątków w obrębie R?Tworzenie filmu z serii fabuł w R
Odpowiedz
Oto jeden sposób znalazłem używając R pomocy:
Aby utworzyć pojedynczych klatek obrazu:
jpeg("/tmp/foo%02d.jpg")
for (i in 1:5) {
my.plot(i)
}
dev.off()
Aby uczynić ten film, najpierw zainstalować ImageMagick. Następnie wywołać następującą funkcję (co nazywa „nawracać”, część ImageMagick przypuszczam):
make.mov <- function(){
unlink("plot.mpg")
system("convert -delay 0.5 plot*.jpg plot.mpg")
}
Albo spróbuj użyć funkcji ffmpeg jak opisano w tym article (Znalazłem ten daje wyniki czystszych): ffmpeg -r 25 -qscale 2 -i tmp/foo% 02d.jpg output.mp4
Może wymagać odrobiny majsterkowania, ale wydawało się to całkiem proste po zainstalowaniu wszystkiego.
Oczywiście, wszędzie, gdzie widzisz "jpg" lub "jpeg", możesz zastąpić GIF lub PNG, aby pasowały do Twojej wyobraźni.
Nie jestem pewien, czy jest to możliwe w R. Zrobiłem projekt raz, gdy punkty danych z R zostały wyeksportowane do bazy danych MySQL, a aplikacja Flex/Flash podniosła te punkty danych i dała animowane wizualizacje ..
Nie potrzebujesz bazy danych. W pętli zapisz wszystkie swoje obrazy. Następnie użyj narzędzia wiersza poleceń, aby połączyć je ze sobą; imagemagick to jedna z możliwości. –
Tak, to był najprostszy sposób.Domyślam się, ze względu na modułowość systemu operacyjnego, nie jest to możliwe w R, chyba że R jest skompilowany ze specjalną biblioteką lub podobną. –
To jest sprytna technika, Srirangan. Wiele lat temu dowiedziałem się, że gdy ktoś mówi "to niemożliwe", oznacza "nie wiem jak to zrobić". Sprytna część techniki polega na tym, że na forum takim jak SO ktoś musi ci powiedzieć, jak to zrobić. Nie jestem sarkastyczny, przy okazji. NAPRAWDĘ uważam, że to dobra technika i zamierzam ją wypróbować. Dzięki Srirangan. – pavium
Jeśli otoczysz swój skrypt R w większym Perlu/Pythonie/itd. skrypt, możesz łączyć wykresy razem ze swoim ulubionym narzędziem do łączenia obrazów w linii poleceń.
Aby uruchomić skrypt R za pomocą skryptu opakowania, należy użyć metody R CMD BATCH
.
Dlaczego potrzebny jest inny język do korzystania z narzędzia wiersza poleceń? – hadley
Cóż, gdzie jest wymagany skrypt Perl/Python? Spójrz również na Rscript (i mniejszy) jako lepszą alternatywę dla 'R CMD BATCH'. –
Nie potrzebujesz innego języka. Możesz użyć powłoki takiej jak bash. Cokolwiek chcesz. Istnieje wiele opcji. Używam R CMD BATCH, ponieważ jest bardziej lub mniej uniwersalny na różnych platformach. –
Myślę, że możesz to zrobić również za pomocą funkcji write.gif w bibliotece caTools. Najpierw trzeba by uzyskać swój wykres w obrazie wielowarstwowym. Nie jestem pewien, jak to zrobić. Ktoś? Bueller?
Klasycznym przykładem animowanym GIF jest to kod, który nie pisałem ale zrobiłem blog about jakiś czas temu:
library(fields) # for tim.colors
library(caTools) # for write.gif
m = 400 # grid size
C = complex(real=rep(seq(-1.8,0.6, length.out=m), each=m), imag=rep(seq(-1.2,1.2, length.out=m), m))
C = matrix(C,m,m)
Z = 0
X = array(0, c(m,m,20))
for (k in 1:20) {
Z = Z^2+C
X[,,k] = exp(-abs(Z))
}
image(X[,,k], col=tim.colors(256)) # show final image in R
write.gif(X, 'Mandelbrot.gif', col=tim.colors(256), delay=100)
Kod zasługa Jarka Tuszyński, PhD.
Zrobiłem kilka filmów przy użyciu XNview (darmowa przeglądarka grafiki) Utwórz funkcję pokazu slajdów. Chciałem pokazać trendy w czasie z danymi przestrzennymi, dlatego właśnie stworzyłem serię wykresów, nazwanych sekwencyjnie [paste() jest twoim przyjacielem dla wszystkich rodzajów nazewnictwa calisteków], a następnie wczytałem je do dialogu pokazu slajdów XNviews i ustawiłem kilka zmiennych czasowych, voila. Trwało to około 5 minut, aby dowiedzieć się, jak to zrobić i utworzyć grafikę wykonywalną.
Oto pełny przykład tworzenia animowanego filmu "GIF" z pliku HDF5. Dane powinny być zestawem danych HDF z 3-wymiarowej tablicy [Nframes] [Nrows] [Ncolumns].
#
# be sure to be run as Administrator to install new packages
#
source("http://bioconductor.org/biocLite.R")
biocLite("rhdf5")
install.packages('caTools')
install.packages('fields')
library(caTools)
library(fields)
library(rhdf5)
x = h5read(file="mydata.h5",name="/Images")
write.gif(x,"movie1.gif",col=rainbow,delay=10,flip=TRUE)
- 1. Tworzenie wideo z serii zdjęć?
- 2. Dodanie serii wielu wykresów w Quantmod R
- 3. Tworzenie Shapefiles w R
- 4. Tworzenie prawdziwego filmu w zwolnionym tempie, które jest zwolnione.
- 5. Tworzenie filmu przy użyciu OpenCV 2.4.0 w pythonie
- 6. Działka wielokrotności (czas) z serii R z legendą
- 7. Tworzenie sygnałów handlowych w R
- 8. Tworzenie wykresu rastrowego w R
- 9. tworzenie zagnieżdżonych sekwencje w R
- 10. Tworzenie macierzy symetrycznej w R
- 11. Tworzenie zmiennej zliczającej w R?
- 12. Tworzenie drzewa wyrażeń w R
- 13. Tworzenie macierzy projektowej w r
- 14. Tworzenie autonomicznego widoku w serii ujęć do użytku programowego
- 15. Jak dodać niestandardowe etykiety serii do legendy w Ggplot R?
- 16. Przesyłanie filmu do youtube z przeglądarki
- 17. R: tworzenie macierzy z nieznaną liczbą wierszy
- 18. Tworzenie sekwencyjny wykaz listów z R
- 19. Tworzenie geograficznych map tematycznych z R
- 20. Tworzenie macierzy miejsca docelowego z R
- 21. R - Tworzenie wykres punktowy z ramki danych
- 22. Jak mogę pobrać szczegóły filmu z YouTube'a z adresu URL filmu za pomocą PHP?
- 23. Tworzenie ciągłej mapy ciepła w R
- 24. Pandy - tworzenie serii kończy się NaN po przekazaniu indeksu?
- 25. Tworzenie drążyć raport w R Shiny
- 26. Czy są tam jakieś dobre interfejsy API filmu/filmu?
- 27. Tworzenie dobrych nazw kolumn R
- 28. Podstawy R: tworzenie kolumny ID
- 29. Konwersja pływaka w serii do serii całkowitą w pand
- 30. Uruchamianie filmu netflix z aplikacji nadawcy chromecast
Możesz nawet zatrzymać jpeg() i dev.off() poza pętlą - jeśli użyjesz odpowiedniej nazwy pliku, np. jpeg ("/ tmp/foo% 02d.png"), R po prostu utworzy nowe pliki podczas twojej pętli. Nie musisz obliczać nazwy pliku. Sprawia, że jest jeszcze łatwiejsze. –
Powinieneś naprawić Dirka, a następnie zaakceptować własną odpowiedź. Dobre rozwiązanie. –
przydatne ... ale trudno jest zrozumieć, gdzie plik .mpg jest zapisany po uruchomieniu funkcji "make.mov" w R? Pracuję w studio R na platformie Mac. – ToNoY