как использовать valuebox в ShinyApp без структуры панели мониторинга?

#r #shiny #shinydashboard #shinyapps

#r #блестящий #shinydashboard #shinyapps

Вопрос:

Я создаю shinyApp без структуры панели мониторинга, поскольку я хочу использовать левую сторону в качестве боковой панели для страницы, а не переходить на разные страницы. И пусть панель навигации будет там, где пользователь переходит на другую страницу.

Без использования структуры shinydashboard / flexdashboard valueBox не отображается должным образом. У кого-нибудь есть идеи о том, как использовать дизайн valueBox без структуры панели мониторинга в качестве зависимости?

Я нашел пример из StackOverflow и перепрофилировал этот вопрос:

без структуры панели инструментов / дизайна valueBox теряется

 
library(shiny)
library(shinydashboard)


ui <- fluidPage(
    
    # Application title
    titlePanel("Old Faithful Geyser Data"),
    
    # Sidebar with a slider input for number of bins 
    sidebarLayout(
        sidebarPanel(
            sliderInput("bins",
                        "Number of bins:",
                        min = 1,
                        max = 50,
                        value = 30)
        ),
        
        # Show a plot of the generated distribution
        mainPanel(
            valueBoxOutput("vbox1", width = 2)
        )
    )
)

server <- function(input, output) {
    
    
    output$vbox1 <- shinydashboard::renderValueBox({ 
        d <- 42
        shinydashboard::valueBox( d, "Ccy")
    })
    
}

shinyApp(ui, server)

 

обычный способ с панелью управления / дизайном, который я хотел бы достичь без структуры панели
управления, отличается только раздел пользовательского интерфейса

 library(shiny)
library(shinydashboard)

ui <- dashboardPage(skin = "black",
                    dashboardHeader(title = "test"),

                    dashboardSidebar(
                        sidebarMenu()),

                    dashboardBody(
                        fluidRow(
                            valueBoxOutput("vbox1", width = 2))))

server <- function(input, output) {
    
    
    output$vbox1 <- shinydashboard::renderValueBox({ 
        d <- 42
        shinydashboard::valueBox( d, "Ccy")
    })
    
}

shinyApp(ui, server)
 

Комментарии:

1. Пожалуйста, проверьте мой ответ.

Ответ №1:

Вы можете использовать useShinydashboard from shinyWidgets для достижения желаемого результата:

 library(shiny)
library(shinydashboard)
library(shinyWidgets)


ui <- fluidPage(
  useShinydashboard(),
  
  # Application title
  titlePanel("Old Faithful Geyser Data"),
  
  # Sidebar with a slider input for number of bins 
  sidebarLayout(
    sidebarPanel(
      sliderInput("bins",
                  "Number of bins:",
                  min = 1,
                  max = 50,
                  value = 30)
    ),
    
    # Show a plot of the generated distribution
    mainPanel(
      valueBoxOutput("vbox1", width = 2)
    )
  )
)

server <- function(input, output) {
  
  
  output$vbox1 <- shinydashboard::renderValueBox({ 
    d <- 42
    shinydashboard::valueBox( d, "Ccy")
  })
  
}

shinyApp(ui, server)