R Shiny valueBox和仪表不能一起工作

时间:2017-10-13 13:45:25

标签: r shiny flexdashboard

我的Shiny App出现问题。在我从valueBox软件包中引入gauge之前,我的应用有flexdashboard工作正常。

使用gauge我的valueBox不再在UI中呈现。

阅读其他帖子,我认为这是flexdashboard包的问题。

非常感谢任何工作。

以下一些可重现的代码:

library(shiny)
library(shinydashboard)
#library(flexdashboard)


ui <-dashboardPage(
dashboardHeader(),
dashboardSidebar(),
dashboardBody(
fluidRow(
  valueBoxOutput("vbox1"),
  column(6,box(plotOutput("plt1"),width=12,title="Gauge Graph",background ="green") ),

column(6,box(plotOutput("plt2"),width=12,title="Graph2",background="yellow") )
),
fluidRow( actionButton("plot","plot") )
)
)

server <- shinyServer(function(input, output, session) {
observeEvent(input$plot,{
output$plt1 <- renderPlot({
  flexdashboard::gauge(56, min = 0, max = 100, symbol = '%', label = paste("Test Label"),gaugeSectors(
    success = c(100, 6), warning = c(5,1), danger = c(0, 1), colors = c("#CC6699")
  ))

})
output$plt2 <- renderPlot({plot(runif(100),runif(100))})
})

output$vbox1 <- renderValueBox({
valueBox(
  "Gender",
  input$count,
  icon = icon("users")
 )
})
})

shinyApp(ui = ui, server = server)

1 个答案:

答案 0 :(得分:1)

您可以使用flexdashboard命名空间而不是源库。

你可以这样做:

library(shiny)
library(shinydashboard)
# library(flexdashboard)


ui <-dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody(
    fluidRow(
      valueBoxOutput("vbox1"),
      column(6,box(flexdashboard::gaugeOutput("plt1"),width=12,title="Gauge Graph",background ="green") ),

      column(6,box(plotOutput("plt2"),width=12,title="Graph2",background="yellow") )
    ),
    fluidRow( actionButton("plot","plot") )
  )
)

server <- shinyServer(function(input, output, session) {
  observeEvent(input$plot,{
    output$plt1 <- flexdashboard::renderGauge({
      flexdashboard::gauge(56, min = 0, max = 100, symbol = '%', label = paste("Test Label"),
                           flexdashboard::gaugeSectors(success = c(100, 6), warning = c(5,1), danger = c(0, 1), colors = c("#CC6699")
      ))

    })
    output$plt2 <- renderPlot({plot(runif(100),runif(100))})
  })

  output$vbox1 <- renderValueBox({
    valueBox(
      "Gender",
      input$count,
      icon = icon("users")
    )
  })
})

shinyApp(ui = ui, server = server) 

使用此代码,应用程序如下所示:enter image description here

希望它有所帮助!