繁体   English   中英

R闪亮的应用程序使用checkboxinput来控制图形输出

[英]R shiny app using checkboxinput to control graph output

我可以让该应用程序同时显示两个图形或不显示图形。 我想要这样,当单击复选框时,条形图显示,而当未单击时,线形图显示。

x1<- as.Date(c("2017-01-01", "2017-02-01", "2017-03-01", "2017-04-01", "2017-05-01", "2017-06-01"))
y1 <- c(1,2,3,4,5,6)

#bar graph
graph1 <-function(){ 
     plot_ly(x = x1,y = y1,
        type = 'bar')

}

graph2 <- function(){
     plot_ly(x=x1, y=y1,
            type = 'scatter',
            mode = 'lines')
}



ui <- fluidPage(
    titlePanel("Title"),
    sidebarPanel("side panel",
                 checkboxInput("barGraph", "Bar Graph"),
                 verbatimTextOutput("conditionalInput"),
                 uiOutput('conditionlInput')
    ),
    mainPanel("main panel",
              plotlyOutput("AhtPlot")
              # ,
              # conditionalPanel(condition = "input$barGraph == FALSE",
              #                  plotlyOutput("AhtLineGraph"))

    )
)

server <- function(input, output){


    reactive({if(input$barGraph == TRUE){
        output$AhtPlot <- renderPlotly(graph1())
    }})
    reactive({if(input$barGraph == FALSE){
        output$AhtPlot <- renderPlotly(graph2())
    }})
    output$conditionalInput <- renderText({input$barGraph})


}


shinyApp(ui, server)

我显然需要添加更多详细信息,因此这里是一些随机文本。

正如rawr所说,实际上不需要任何反应式表达。 尝试这个:

library(shiny)
library(plotly)

x1<- as.Date(c("2017-01-01", "2017-02-01", "2017-03-01", "2017-04-01", "2017-05-01", "2017-06-01"))
y1 <- c(1,2,3,4,5,6)

#bar graph
graph1 <-function(){ 
     plot_ly(x = x1,y = y1,
        type = 'bar')

}
# scatter lines
graph2 <- function(){
     plot_ly(x=x1, y=y1,
            type = 'scatter',
            mode = 'lines')
}



ui <- fluidPage(
titlePanel("Title"),
sidebarPanel("side panel",
checkboxInput("barGraph", "Bar Graph"),
verbatimTextOutput("conditionalInput"),
uiOutput('conditionlInput')
),
mainPanel("main panel",
plotlyOutput("AhtPlot")
)
)

server <- function(input, output,session){


output$AhtPlot<-renderPlotly({
if(input$barGraph == TRUE)
{graph1()} else {
graph2()    
}
})


output$conditionalInput <- renderText({input$barGraph})

}


shinyApp(ui, server)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM