shiny的应用程序中,我有一个曲线图,有时需要一些时间才能计算出来.我想用waiter包中的进度条来显示此计算的进度.有没有办法把waitress加到modalDialog上?下面是一个MWE,其中waitress应用于整个页面,但我会发现,如果我只在modalDialog上有一个栏,它会更好.

我已经判断了Demo的可能性:将其应用于actionButton在我的实际应用程序中不起作用.将它显示为通知是可行的,但我不知道有什么方法可以将通知显示在屏幕的中心而不是角落.我猜"on Elements"就是我要找的,但是我的modalDialog没有输入或输出id.

library(shiny)
library(shinipsum)
library(waiter)
library(plotly)

complicated_function <- function(){
  waitress <- Waitress$new(theme = "overlay",min = 0,max = 20)
  for(i in 1:20){
    waitress$inc(1)
    Sys.sleep(0.2)
  }
  waitress$close()
  return(random_ggplotly())
}

ui <- fluidPage(
  useWaitress(),
  actionButton("plotButton", "Generate Plot")
)

server <- function(input,output,session){
  modal1 <- modalDialog(
    renderPlotly({
      complicated_function()
    })
  )
  observeEvent(input$plotButton,{
    showModal(modal1)
  })
}
shinyApp(ui, server)

推荐答案

您可以try 同一个程序包中的AttendantBar:

library(shiny)
library(shinipsum)
library(waiter)
library(plotly)

complicated_function <- function(){
  att <- Attendant$new("progress-bar", hide_on_max = TRUE)
  for(i in 1:20){
    att$set(i * 10)
    Sys.sleep(0.2)
   }
  return(random_ggplotly())
}


ui <- fluidPage(
  useAttendant(),
  
  actionButton("plotButton", "Generate Plot")
)

server <- function(input,output,session){
  
  
  modal1 <- modalDialog(
    attendantBar("progress-bar"),
    renderPlotly({

      complicated_function()
    })
    
  )
  observeEvent(input$plotButton,{
    showModal(modal1)
    
  })
}
shinyApp(ui, server)

R相关问答推荐

使用long()在dØr中过滤后获取元素数量

extract()函数不处理stanfit对象,我用错了吗?

R:对于没有数据的缓冲区,加权平均值为0

R -模运算后的加法

在R中使用自定义函数时如何删除该函数的一部分?

Highcharter多次钻取不起作用,使用不同方法

为什么在ggplot2中添加geom_text这么慢?

我想在R中总结一个巨大的数据框架,使我只需要唯一的lat、lon、Date(Year)和Maxium Value""""""""

如何优化向量的以下条件赋值?

根据文本字符串中的值粘贴新列

我正在努力用R计算数据集中的中值逐步距离

如何读取CSV的特定列时,给定标题作为向量

如何基于两个条件从一列中提取行

更改STAT_VALLES/STAT_PEAKS中的箭头线宽/大小

如何在R中平滑地绘制线图(不拟合)?

具有重复元素的维恩图

ggplot R:X,Y,Z使用固定/等距的X,Y坐标绘制六边形热图

长/纬点继续在堪萨斯-SF结束,整齐的人口普查

使用同一行中的前一个值填充R矩阵中的缺失值

将美学添加到ggploy中的文本标签