你能建议一种在shiny中添加动画点阵/条纹图的方法吗?
我想添加的数字是
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代码:
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)发布于 2018-08-31 12:53:18
根据Stépanel关于在侧面板中使用滑块的建议,您可以使用滑块值对传递给stripchart的数据进行子集。
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)https://stackoverflow.com/questions/52113416
复制相似问题