在 Shiny 中输入信息后渲染图形

render graphics after inputting information in Shiny

我试图在输入某些参数后生成一些图表,但是,在输入某些图表时它们会抛出错误,因为尚未输入输入,所以如果值为空,我就会想到这个想法,不制作图表,但附件代码不起作用:

shinyApp(ui =
           fluidPage(sidebarPanel(numericInput('x','x', value = NULL),
                                  numericInput('x2','x2', value = NULL),
                                  numericInput('x3','x3', value = NULL)), 
                     mainPanel(renderPlot('plot1'))),
         
         server = function(input, output, session){
           
         condition <- reactive(is.null(input$x) | is.null(input$x2) |is.null(input$x3))
         
         output$plot1 <- renderPlot(if(condition()){NULL}else{plot(1:10,1:10)})
         
         })

我希望有一种方法,谢谢。

您的 ui 代码中存在错误,根本无法显示任何绘图,您应该更换:

mainPanel(renderPlot('plot1'))

与 :

mainPanel(plotOutput('plot1'))

如@MrFlick 评论所述,您可以使用 req() 进行所需输入:

output$plot1 <- renderPlot(
  {
    req(input$x, input$x2, input$x3)
    plot(1:10,1:10)
  })