【发布时间】:2022-01-07 20:59:35
【问题描述】:
我想制作一个带有 2 个actionButtons 的应用程序:1)在加载 selectizeInput 和 2)之前提交更改以绘制绘图。
我知道如何在单击actionButton 后添加spinner,但大多数情况下是在您想要显示情节时添加的。
但是,是否可以在不显示任何情节的情况下添加spinner?
在这种特殊情况下,我想在单击“提交”后显示一个微调器,直到加载“选择选项卡”中的 selectizeInput。如您所见,我附加的示例需要一些时间才能加载所有选项(因为该文件有 25000 行)。
点击第二个actionButton(显示图)后,我已经有了一个微调器,但我还需要一个。
我创建了一个示例,但由于某种原因,该图没有显示在闪亮的应用程序中,而是出现在 R 的窗口中(我不知道为什么,但我添加了该图只是为了向您展示我是如何放置第二个微调器。我想要一个类似的,但第一个 actionButton。)。
library(shiny)
library(shinycssloaders)
ui <- fluidPage(
titlePanel("My app"),
sidebarLayout(
sidebarPanel(
tabsetPanel(
tabPanel("Submit",
checkboxInput("log2", "Log2 transformation", value = FALSE),
actionButton("submit", "Submit")
),
tabPanel("Selection",
br(),
selectizeInput(inputId = "numbers", label = "Choose one number:", choices=character(0)),
actionButton("show_plot", "Show the plot")
))
),
mainPanel(
conditionalPanel(
condition = "input.show_plot > 0",
style = "display: none;",
withSpinner( plotOutput("hist"),
type = 5, color = "#0dc5c1", size = 1))
)
)
)
server <- function(input, output, session) {
data <- reactive({
data = read.csv("https://people.sc.fsu.edu/~jburkardt/data/csv/hw_25000.csv")
data[,1] <- as.character(data[,1])
if(input$log2 == TRUE){
cols <- sapply(data, is.numeric)
data[cols] <- lapply(data[cols], function(x) log2(x+1))
}
return(data)
})
mylist <- reactive({
req(data())
data <- data()
data <- data[,1]
return(data)
})
# This is to generate the choices (gene list) depending on the user's input.
observeEvent(input$submit, {
updateSelectizeInput(
session = session,
inputId = "numbers",
choices = mylist(), options=list(maxOptions = length(mylist()))
)
})
v <- reactiveValues()
observeEvent(input$show_plot, {
data <- data()
v$plot <- plot(x=data[,1], y=data[,2])
})
# If the user didn't choose to see the plot, it won't appear.
output$hist <- renderPlot({
req(data())
if (is.null(v$plot)) return()
if(input$show_plot > 0){
v$plot
}
})
}
请问有人知道怎么帮我吗?
非常感谢
【问题讨论】:
-
您不想在选择输入中添加
withSpinner? -
@StéphaneLaurent 是的,但我想要两个微调器。一个用于
selectizeInput,另一个用于第二个actionButton(查看情节)
标签: r shiny spinner selectinput shinycssloaders