मैं gganimate() का उपयोग करना चाहता था लेकिन एक व्यावहारिक समाधान नहीं ढूंढ सका।

मैंने सफलतापूर्वक कुछ बनाया - animation पैकेज का उपयोग करके। मैं GIF और वीडियो आउटपुट दोनों बनाने में सक्षम था - लेकिन न तो उतना सहज था और न ही उतना अच्छा था जितना मैं उम्मीद कर रहा था।

आउटपुट बहुत तड़का हुआ है - अगर मैं आधार "हिस्ट" फ़ंक्शन का उपयोग करके 20 अलग-अलग ब्रेक दिखाना चाहता हूं, तो एनीमेशन केवल उनमें से लगभग आधा दिखाता है। आप देख सकते हैं कि जीआईएफ सभी # डिब्बे के माध्यम से पुनरावृत्त होता है, लेकिन प्लॉट प्रत्येक चरण के लिए अपडेट नहीं होते हैं।

मेरे कोड का GIF आउटपुट ये रहा।

library('ggplot2')
library('animation')

psd_1 <- data.frame(rnorm(5000, 100, 15))

colnames(psd_1)[1] <- "passengers"

ani.options(interval=.25, nmax=20)

a = saveGIF(
  {
    for (i in c(1:20)) {
      hist(psd_1$passengers, breaks=i, main=paste("Histogram with ",i, " bins"),
           xlab="Total Passengers")
    }
  }
  , movie.name="wodies.gif")
3
SevenOvertimes 18 अप्रैल 2020, 21:08

1 उत्तर

सबसे बढ़िया उत्तर

जैसा कि मैंने टिप्पणियों में उल्लेख किया है, यदि आप breaks= को एक नंबर पास करते हैं, तो यह गारंटी नहीं देता है कि ब्रेक की संख्या, यह सिर्फ एक सुझाव है। यदि आप एक सटीक संख्या निर्धारित करना चाहते हैं, तो आपको ब्रेक के वेक्टर में गुजरना होगा। तुम कर सकते हो

a = saveGIF(
  {
    for (i in c(1:20)) {
      hist(psd_1$passengers, 
           breaks=seq(min(psd_1$passengers), max(psd_1$passengers), length.out=i), 
           main=paste("Histogram with ",i, " bins"), 
           xlab = "Total Passengers")  }
  }
  , movie.name = "wodies.gif")
3
MrFlick 19 अप्रैल 2020, 01:22