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