如何在 R 中的 javascript 代码中更改动画速度?
How to change plotly animation speed within a javascript code in R?
我想在 R 中更改 plotly 动画的速度。但是,该动画不是由 plotly 动画提供的默认播放按钮触发的。根据 JS 代码,它通过单击 Shiny 操作按钮触发。在这种情况下似乎没有考虑 animation_opts() 参数。
我已经尝试更改 animation_opts() 参数,例如 "frame" 和 "transition",但动画保持不变。我还尝试在 javascript 代码中更改这些参数,但动画甚至没有开始。
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_opts(frame = 5000, transition = 4500, redraw = FALSE) %>%
animation_button(visible = FALSE) %>%
onRender("
function(el,x){
$('#anim').on('click', function(){Plotly.animate(el);});
}")
})
}
shinyApp(ui, server)
我想要一个用于绘图动画的帧和过渡持续时间的参数,并能够在代码中更改它。
设置这些选项的方法如下:
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_opts(frame = 5000, transition = 4500, redraw = FALSE) %>%
animation_button(visible = FALSE) %>%
onRender("
function(el,x){
$('#anim').on('click', function(){
Plotly.animate(el,
null,
{
transition: {
duration: 2000,
easing: 'cubic-in-out'
},
frame: {
duration: 2000
}
}
);
});
}")
})
}
shinyApp(ui, server)
我想在 R 中更改 plotly 动画的速度。但是,该动画不是由 plotly 动画提供的默认播放按钮触发的。根据 JS 代码,它通过单击 Shiny 操作按钮触发。在这种情况下似乎没有考虑 animation_opts() 参数。
我已经尝试更改 animation_opts() 参数,例如 "frame" 和 "transition",但动画保持不变。我还尝试在 javascript 代码中更改这些参数,但动画甚至没有开始。
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_opts(frame = 5000, transition = 4500, redraw = FALSE) %>%
animation_button(visible = FALSE) %>%
onRender("
function(el,x){
$('#anim').on('click', function(){Plotly.animate(el);});
}")
})
}
shinyApp(ui, server)
我想要一个用于绘图动画的帧和过渡持续时间的参数,并能够在代码中更改它。
设置这些选项的方法如下:
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_opts(frame = 5000, transition = 4500, redraw = FALSE) %>%
animation_button(visible = FALSE) %>%
onRender("
function(el,x){
$('#anim').on('click', function(){
Plotly.animate(el,
null,
{
transition: {
duration: 2000,
easing: 'cubic-in-out'
},
frame: {
duration: 2000
}
}
);
});
}")
})
}
shinyApp(ui, server)