shinycssloaders为Shiny添加Loading动画

基础的Shiny的输出(图、表等等)在重新计算更新时,更新方式是变灰,然后更新为新的内容。为了好看可以添加Loading动画。Shiny内置了进度条功能,但是样式有些单一,shinycssloaders可以添加多样的loading动画样式。

https://daattali.com/shiny/shinycssloaders-demo/

使用方法

使用也十分简单,在完成安装后将shiny的output放在withSpinner()的调用中即可,在加载了管道操作符的情况下,同样可以使用管道操作plotOutput("myplot") %>% withSpinner()

基础的使用如下

library(shiny)

ui <- fluidPage(
    actionButton("go", "Go"),
    shinycssloaders::withSpinner(
        plotOutput("plot")
    )
)
server <- function(input, output) {
    output$plot <- renderPlot({
        input$go
        Sys.sleep(1.5)
        plot(runif(10))
    })
}

如图所示,即可使用loading动画了。

样式

除了默认的动画样式,该包还有另外七中,使用type参数调整。同时colorsize还可以调整颜色和大小 withSpinner(plotOutput("myplot"), type = 5, color = "#0dc5c1", size = 2)

自定义

该包同样支持自定义你的加载动画,使用image参数调整即可。

Licensed under CC BY-NC-SA 4.0