RShiny:如何将滑块居中

问题描述 投票:0回答:1

我是RShiny的新手,我正在尝试复制此模板:https://shiny.rstudio.com/gallery/retirement-simulation.html我确实有此模板的代码,但这是一个学习练习。

这是我到目前为止的内容:

ui <- fluidPage(

  # Title goes here...
  titlePanel("Retirement: simulating wealth with random returns, inflation and withdrawals"),
  p("Description here..."),
  hr(),

  # Sidebar layout...
  sidebarLayout(
    # Sidebar panel...
    sidebarPanel(
      # Input: Slider for the number of observations to generate ----
      sliderInput("n",
                  "Param 1",
                  value = 500,
                  min = 1,
                  max = 1000),
      sliderInput("n",
                  "Param 2",
                  value = 500,
                  min = 1,
                  max = 1000),
      sliderInput("n",
                  "Param 3",
                  value = 500,
                  min = 1,
                  max = 1000),
      sliderInput("n",
                  "Param 4",
                  value = 500,
                  min = 1,
                  max = 1000)
    ),

    # Main panel...
    mainPanel(
      # Outputs of any plots...
      tabsetPanel(type = "tabs",
                  tabPanel("Plot", plotOutput("plot"))
      )
    )
  )
)

看起来不错,但我需要像上面的模板一样将滑块居中。非常感谢朝着正确方向的指针!

谢谢,

Joesph

r shiny shinydashboard shiny-server shinyjs
1个回答
0
投票

您可以通过结合使用wellPanel,fluidRow和column来做到这一点。>>

第一个fluidRow是将2个WellPanel并排保持50%的比例。在每个wellPanel中,我们使用fluidRows定义一行,然后使用宽度为6的2列定义2个宽度为50%的列。

ui <- navbarPage("Test",

     tabPanel("Data",

              fluidRow(column(
                6,
                wellPanel(
                  fluidRow(column(
                    6, sliderInput("input1", "input1", 0, 100, 5)
                  ),
                  column(
                    6, sliderInput("input2", "input2", 0, 100, 5)
                  )),

                  fluidRow(column(
                    6, sliderInput("input1", "input3", 0, 100, 5)
                  ),
                  column(
                    6, sliderInput("input3", "input4", 0, 100, 5)
                  )),

                  fluidRow(column(
                    6, sliderInput("input1", "input5", 0, 100, 5)
                  ),
                  column(
                    6, sliderInput("input2", "input6", 0, 100, 5)
                  ))
                )
              ))))

最终输出看起来像这样

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.