2015-05-27 15 views
8

समस्या:knitr rmarkdown में प्लॉट एनीमेशन

हाय, मैं एक rmarkdown दस्तावेज़ में एनिमेटेड प्लॉट बनाने की कोशिश करता हूं। यहाँ मेरी कोड है:

```{r lmSim, fig.show='animate'} 
library(animation) 
library(plyr) 

oopt = ani.options(interval = 0.3, nmax = 101) 

a <- sort(rnorm(100, 2)) 
b <- sort(rnorm(100, 7)) 
out <- vector("list", 101) 
for (i in 1:ani.options("nmax")) { 
    ji <- seq(from = 0, to = 5, by = .05) 
    a <- jitter(a, factor = 1, amount = ji[i]) 
    fab1 <- lm(a ~ b) 
    coe <- summary(fab1)$coefficients 
    r2 <- summary(fab1)$r.squared 
    if (coe[2, 4] < .0001) p <- " < .0001" 
    if (coe[2, 4] < .001 & coe[2, 4] > .0001) p <- " < .001" 
    if (coe[2, 4] > .01) p <- round(coe[2, 4], 3) 
    plot(a ~ b, main = "Linear model") 
    abline(fab1, col = "red", lw = 2) 
    text(x = min(b) + 2, y = max(a) - 1, 
     labels = paste("t = ", round(coe[2, 3], 3), ", p = ", p, ", R2 = ", round(r2, 3))) 
    out[[i]] <- c(coe[2, 3], coe[2, 4], r2) 
    ani.pause() 
    } 

ani.options(oopt) 
``` 

पाश काम ठीक है, और एक समारोह में पारित कर दिया, I'am 'saveLatex', 'saveHTML' या 'saveVideo' के साथ कई प्रारूपों में यह बचत करने में सक्षम।

video of chunk lmSim 

अगर मैं HTML में बुनी, का केवल प्ले बटन: हालांकि, जब 'बुनी' आदेश एक पीडीएफ प्राप्त करने के लिए .Rmd फ़ाइल, एनीमेशन प्रकट नहीं होता है, वहाँ सिर्फ इस लाइन लिखा है वीडियो प्रदर्शित होता है। हालांकि, अगर मैं अपने ब्राउज़र (फ़ायरफ़ॉक्स) में एचटीएमएल खोलता हूं तो यह सही तरीके से प्रदर्शित होता है।

कोई त्रुटि संदेश प्रदर्शित नहीं किया गया है। मैं आर संस्करण 3.2.0, नवीनतम आर स्टूडियो संस्करण, मैकबुक प्रो योसाइट पर 1.10.5 knitr संस्करण का उपयोग कर रहा हूं। मुझे अपनी समस्या का समाधान करने के लिए कोई प्रासंगिक जानकारी या दस्तावेज़ीकरण नहीं मिला।

सवाल:

इसलिए, यह rmarkdown/knitr से बनाए गए पीडीएफ में एक embeded एनीमेशन के लिए संभव है?

क्या मुझे पीडीएफ में वीडियो से निपटने के लिए एक और प्रोग्राम स्थापित करना है (मेरे कंप्यूटर पर ffmpeg है)?

बहुत धन्यवाद!

धन्यवाद यहुई!

--- 
title: "Sim" 
author: "" 
header-includes: 
    - \usepackage{animate} 
... 
--- 

```{r lmSim, fig.show='animate', out.width = '6in'} 
+2

केवल उत्पादन प्रारूप है कि आप चाहते हैं पीडीएफ है, तो शायद आप हिस्सा विकल्प कोशिश कर सकते हैं ' out.width = '' '। कृपया ध्यान दें कि आपको शीर्षलेख में '\ usepackage {animate}' शामिल करना होगा (http://rmarkdown.rstudio.com/pdf_document_format.html), और पीडीएफ देखने के लिए एक्रोबैट रीडर का भी उपयोग करना होगा। यदि यह काम करता है, तो मैं इसे एक उत्तर में समझाऊंगा। –

उत्तर

9

आप ggplot और gganimation साथ की कोशिश की है: यह निम्न सेटिंग्स (के साथ Adobe PDF पढ़ने) के साथ बहुत अच्छी तरह से काम करता है? उदाहरण के लिए:

library(gapminder) 
library(gganimate) 
library(ggplot) 

head(gapminder) 
theme_set(theme_bw()) 

p <- ggplot(gapminder, aes(gdpPercap, lifeExp, size = 1, color = continent, frame = year)) + 
    geom_point() + 
    scale_x_log10() 


animation<-gganimate(p, "your_animation.gif")#Or to your path 

देखें कि आपको अपनी एनीमेशन को पहले सहेजने की आवश्यकता है। आपको अपनी कार्य निर्देशिका स्थापित करने की आवश्यकता है।

के बाद आप की तरह चैट या markdown (आर चक से नहीं) में एचटीएमएल से यह कॉल कर सकते हैं:

![your caption here](your_animation.gif) 
संबंधित मुद्दे