R Shiny:如何使幻灯片居中

Posted

技术标签:

【中文标题】R Shiny:如何使幻灯片居中【英文标题】:RShiny: How to center sliders 【发布时间】:2020-04-01 10:12:45 【问题描述】:

我是 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"))
      )
    )
  )
)

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

谢谢,

乔布斯

【问题讨论】:

在侧边栏面板中使用 column 参数...其他选项是使用 box 在滑块周围设置框以进行更精细的控制 谢谢。我玩过这个,但我不明白列宽 1-12 部分。如何像上面的示例一样让 16 个滑块以 4 x 4 对齐? 【参考方案1】:

使用margin: auto CSS 规则:

div(style = "margin: auto; width: 80%", # this number can be any percentage you need
    sliderInput(
                ...
                width = "100%" # this number has to be "100%", nothing less
               )
   )

【讨论】:

【参考方案2】:

您可以结合使用 wellPanel、fluidRow 和 column。

第一个fluidRow 将2 个wellPanel 并排放置,50% 分开。在每个 wellPanel 中,我们使用 fluidRows 定义一行,然后使用 2 个宽度为 6 的列来定义 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)
                  ))
                )
              ))))

最终的输出应该是这样的

【讨论】:

以上是关于R Shiny:如何使幻灯片居中的主要内容,如果未能解决你的问题,请参考以下文章

Shiny App - 从上传的 CSV 生成和下载 PPTX 幻灯片

c#如何使背景图片自动适应屏幕都大小

在 Shiny 的流体行中将绘图居中

Flexslider 视口高度在调整大小时无响应

jquery Owl Carousel:如何使当前幻灯片集中

我如何使Figma API与Google App脚本API一起使用?