首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >光彩夺目的动画点情节

光彩夺目的动画点情节
EN

Stack Overflow用户
提问于 2018-08-31 10:23:42
回答 1查看 978关注 0票数 1

你能建议一种在shiny中添加动画点阵/条纹图的方法吗?

我想添加的数字是

代码语言:javascript
复制
x = sample(1:10, 100, TRUE)

for(i in seq_along(x)){
  stripchart(x[1:i], method="stack", at=0.05, frame.plot=FALSE, xaxt="n", xlim=range(x))
  axis(1, pretty(x))
  Sys.sleep(0.05)
}

(理想情况下,我希望它比0.05更快,但ideally)

当我尝试在shiny中这样做时,它会延迟,然后在一次移动中画出图。(ggplotly 似乎不是一种选择)

测试shiny代码:

代码语言:javascript
复制
library(shiny)

ui = fluidPage( plotOutput("plot") )

server = function(input, output, session) {
  x = sample(1:10, 100, TRUE)
  rng = range(x)
  output$plot <- renderPlot({
      for(i in seq_along(x)){
      stripchart(x[1:i], method="stack", at=0.05, frame.plot=FALSE, 
                 pch=16, cex=2, xaxt="n", xlim=rng)
      axis(1, pretty(x))
      Sys.sleep(0.05)
      }})}

shinyApp(ui = ui, server = server)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-31 12:53:18

根据Stépanel关于在侧面板中使用滑块的建议,您可以使用滑块值对传递给stripchart的数据进行子集。

代码语言:javascript
复制
library(shiny)

ui <- fluidPage(    
  titlePanel("Sliders"),
  sidebarLayout(
    sidebarPanel(
      sliderInput("animation", "Looping Animation:",
                  min = 0, max = 100,
                  value = 1, step = 10,
                  animate = animationOptions(interval = 300, loop = FALSE))
    ),
    mainPanel(plotOutput("plot"))
    ))

server <- function(input, output) {

  x = sample(1:10, 100, TRUE)

  sliderValues <- reactive({ (input$animation)})

  output$plot <- renderPlot({
      stripchart(x[1:sliderValues()], method="stack", at=0.05, frame.plot=FALSE, 
           pch=16, cex=2, xaxt="n", xlim=range(x))
      axis(1, pretty(x))
  })    
}

# Create Shiny app ----
shinyApp(ui, server)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52113416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档