flexdashboard:规范图不会在ShinyDashBoard中渲染并破坏ValueBox

时间:2016-07-28 21:05:00

标签: r plot shinydashboard flexdashboard

我想在ShinyDashBoard中绘制gauge plot,我看到两个问题。

1)规范图未呈现

2)它以某种方式破坏了仪表板中的ValueBox。

以下是复制此问题的代码。

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)

使用plotly库生成的图:-( 任何有关解决此问题的帮助都非常感谢。提前谢谢。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题!

这是一个UI事物 - 在调用服务器输出时查看代码。您需要使用flexdashboard::gaugeOutput("plt1")代替plotlyOutput。这应该可以解决问题。

参考:https://cran.r-project.org/web/packages/flexdashboard/flexdashboard.pdf (即只是flexdashboard包页面。)

答案 1 :(得分:-1)

1.在UI中

column(6,box(gaugeOutput("plt1"),width=12,title="Gauge Graph",background ="green") )

在服务器

output$plt1 <- renderGauge({
      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")
      ))
    })

2

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