如何将闪亮的动作按钮链接到 R 中的情节动画?如何将、按钮、情节、动作

2023-09-06 07:39:22 作者:国民撩汉一把手

我正在尝试使用闪亮的操作按钮触发情节图的动画.动画是通过在情节中使用帧来完成的.但是,这会创建一个触发动画的自动播放按钮.我不希望此按钮存在,而是希望使用我创建的闪亮动作按钮来触发动画.

I am trying to trigger an animation of a plotly graph with a shiny action button. The animation is done with the use of frames in plotly. However, this creates an automatic play button that triggers the animation. I don't want this button to exist and, instead, I want to trigger the animation with a shiny action button I created.

我尝试过将 plotlyProxy 与 plotlyProxyInvoke("animate") 函数一起使用,但未成功.

I have tried, unsuccessfully, using the plotlyProxy with the plotlyProxyInvoke("animate") function.

p <- plot_ly(sinusoid, x = ~time, y = ~sin, type = "scatter", mode = 'line',
colors = colorRampPalette(brewer.pal(5,"Spectral"))(50), hoverinfo = 'none',
name = "Cycle") %>%

add_markers(x = compUn$angleShift, y = compUn$sin, type = "scatter",
name = compUn$Country[i], showlegend = TRUE, marker = list(size = 12), 
frame = compUn$DateStringAdjusted, hoverinfo = 'text', 
text = paste0('D: ', round(compUn$D, 3), 
              '
A: ', round(compUn$A, 3),
              '
Return: ', round(compUn$R, 3))) %>%

animation_opts(frame = 10000, redraw = FALSE)

点击闪亮的动作按钮后,最终的绘图动画应该是带有移动标记的静态正弦波.

The final plot animation should be a static sine wave with a moving marker, once the shiny action button is clicked.

推荐答案

library(shiny)
library(plotly)
library(htmlwidgets)

ui <- fluidPage(
  actionButton("anim", "Animate"),
  plotlyOutput("plot")
)

server <- function(input, output){
  output[["plot"]] <- renderPlotly({
    df <- data.frame(
      x = c(1,2,1), 
      y = c(1,2,1), 
      f = c(1,2,3)
    )
    df %>%
      plot_ly(
        x = ~x,
        y = ~y,
        frame = ~f,
        type = 'scatter',
        mode = 'markers',
        marker = list(size = 20),
        showlegend = FALSE
      ) %>% 
      animation_button(visible = FALSE) %>%
      onRender("
        function(el,x){
          $('#anim').on('click', function(){Plotly.animate(el);});
        }")

  })
}

shinyApp(ui, server)

 
精彩推荐
图片推荐