web-dev-qa-db-ja.com

R Shinyサイドバーの水平ルールhr()

通常、Shinyでhr()を使用すると、UI要素の下でfluidRow()を使用して水平方向の罫線を作成できますが、テキストの下のsideBarPanel()でそれを行うことはできません。サイドバーのテキストとUI要素を分割するために、水平方向のルールなどを作成するにはどうすればよいですか?

13
tsouchlarakis

通常、線は表示されますが、背景とのコントラストは非常に低くなります。行をより見やすくするには、UI部分に以下を含めることにより、CSSコードを変更できます。

_  tags$head(
    tags$style(HTML("hr {border-top: 1px solid #000000;}"))
  ),
_

tags$style(HTML(...))を使用すると、アプリにCSSを含めることができます。行のhtmlタグはhrです。残りのパラメーターは、線の選択、幅、色などの指定を示します。

完全に機能する例については、以下を参照してください。

_library(shiny)

ui <- fluidPage(
  tags$head(
    tags$style(HTML("hr {border-top: 1px solid #000000;}"))
  ),
   sidebarLayout(
      sidebarPanel(
         "text",
         hr(),
         uiOutput("out")
      ),
      mainPanel(
         plotOutput("distPlot")
      )
   )
)

server <- function(input, output) {
  output$out <- renderUI({
    sliderInput("bins",
                "Number of bins:",
                min = 1,
                max = 50,
                value = 30)
  })
}


shinyApp(ui = ui, server = server)
_
11