2017-07-13 55 views
13

W jaki sposób mogę utworzyć ładunek animacji na końcowej klatce? Oznacza to, że kiedy ładunek się załaduje, chciałbym załadować go na ostatnią ramkę (np. 2017). Domyślnie ładuje się na pierwszej klatce (np. 1960). Później, gdy osoba kliknie grać, animacja powinna rozpocząć się od pierwszej ramki (np. 1960)R Plotly animation - initial frame

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

Mam to samo pytanie. Czy kiedykolwiek znalazłeś odpowiedź? – Sasha

+0

Niestety, nie mam. –

+3

Możesz uzyskać więcej odpowiedzi, jeśli podasz w pełni reprodukowany kod. – MrSmithGoesToWashington

Odpowiedz

4

To nie jest pełna odpowiedź, ale ponieważ nie ma jeszcze inna odpowiedź postanowiłem odpowiedzieć najlepiej, że Mogę to zrobić, a może ktoś inny ma pomysły na ulepszenie?

Istnieje funkcja animation_slider(), która przyjmuje argument active, który może ustawić aktywną ramkę na suwaku. Jednak nie zmienia to aktywnej klatki na wykresie ... Chodzi o to, aby dodać ramkę 0 (jak również wspomniane przez Sixiang.Hu w komentarzach) i połączyć ją z aktywną ramką. Minusem tego rozwiązania jest oczywiście to, że zawsze jest klatka 0 po powrocie na suwak animacji.

# 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)