[英]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.