基础的Shiny的输出(图、表等等)在重新计算更新时,更新方式是变灰,然后更新为新的内容。为了好看可以添加Loading动画。Shiny
内置了进度条功能,但是样式有些单一,shinycssloaders
可以添加多样的loading动画样式。
使用方法
使用也十分简单,在完成安装后将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
参数调整。同时color
和size
还可以调整颜色和大小 withSpinner(plotOutput("myplot"), type = 5, color = "#0dc5c1", size = 2)
自定义
该包同样支持自定义你的加载动画,使用image
参数调整即可。