2017-07-13 22 views
13

मैं अंतिम फ्रेम पर साजिश एनीमेशन लोड कैसे बना सकता हूं। यही है, जब साजिश लोड होती है, तो मैं इसे उस अंतिम फ्रेम (उदाहरण के लिए 2017) पर लोड करना चाहता हूं। डिफ़ॉल्ट रूप से, यह पहले फ्रेम (उदाहरण 1 9 60) पर लोड होता है। बाद में, जब व्यक्ति ही क्लिक खेलते हैं, एनीमेशन पहली फ्रेम से शुरू कर देना चाहिए (उदाहरण के लिए। 1960)आर प्लॉटली एनीमेशन - प्रारंभिक फ्रेम

animation_opts(frame = frame, transition = 0, redraw = FALSE) %>% 
    animation_slider(currentvalue = list(prefix = "Year")) 
+1

मुझे एक ही प्रश्न है। क्या आपको कभी जवाब मिला है? – Sasha

+0

दुर्भाग्य से, मैंने नहीं किया है। –

+3

यदि आप पूरी तरह से प्रजनन कोड प्रदान करते हैं तो आप अधिक उत्तर प्राप्त कर सकते हैं। – MrSmithGoesToWashington

उत्तर

4

यह एक पूरा जवाब नहीं है, लेकिन बाद से वहाँ कोई अन्य जवाब अभी तक है मैं सबसे अच्छा पोस्ट करने के लिए फैसला किया है कि मैं कर सकता हूं, और शायद किसी और के पास वहां से सुधार करने के विचार हैं?

एक फ़ंक्शन animation_slider() है, जो तर्क active लेता है, जो स्लाइडर पर सक्रिय फ्रेम सेट कर सकता है। हालांकि, यह साजिश में सक्रिय फ्रेम को नहीं बदलता है ... तो विचार एक फ्रेम 0 जोड़ना है, (जैसा टिप्पणियों में सिक्सियांग.एचयू द्वारा भी उल्लेख किया गया है) और इसे सक्रिय फ्रेम के साथ संयोजित करें। इस समाधान के साथ नकारात्मकता स्पष्ट रूप से है कि जब आप एनीमेशन स्लाइडर पर वापस जाते हैं तो हमेशा फ्रेम 0 होता है।

# sample data 
df = data.frame(a=seq(1,20),b=seq(1,20),frame=seq(1,20)) 

# add initial frame 
init_frame = 10 
df = rbind(df[df$frame==10,],df) 
df$frame[1]=0 

library(plotly) 
plot_ly(df,x=~a,y=~b,frame=~frame) %>% animation_slider(active=init_frame) 
संबंधित मुद्दे