查看原文
其他

shiny 之 滑块控件

JunJunLab 老俊俊的生信笔记 2022-08-15


风萧萧兮易水寒

1引言

认识 shinyslider 控件。

2解析

功能

通过左边的滑块移动,右边输出的表格内容也会同时变化:

ui 部分

library(shiny)

# Define UI for slider demo app ----
ui <- fluidPage(

  # App title ----
  titlePanel("Sliders"),

  # Sidebar layout with input and output definitions ----
  sidebarLayout(

    # Sidebar to demonstrate various slider options ----
    sidebarPanel(

      # Input: Simple integer interval ----
      sliderInput("integer""Integer:",
                  min = 0, max = 1000,
                  value = 500),

      # Input: Decimal interval with step value ----
      sliderInput("decimal""Decimal:",
                  min = 0, max = 1,
                  value = 0.5, step = 0.1),

      # Input: Specification of range within an interval ----
      sliderInput("range""Range:",
                  min = 1, max = 1000,
                  value = c(200,500)),

      # Input: Custom currency format for with basic animation ----
      sliderInput("format""Custom Format:",
                  min = 0, max = 10000,
                  value = 0, step = 2500,
                  pre = "$", sep = ",",
                  animate = TRUE),

      # Input: Animation with custom interval (in ms) ----
      # to control speed, plus looping
      sliderInput("animation""Looping Animation:",
                  min = 1, max = 2000,
                  value = 1, step = 10,
                  animate =
                    animationOptions(interval = 300, loop = TRUE))

    ),

    # Main panel for displaying outputs ----
    mainPanel(

      # Output: Table summarizing the values entered ----
      tableOutput("values")

    )
  )
)

比较简单,在 sidebarPanel 里添加了 4 个滑块控件,我们看其中一个:

sliderInput("integer""Integer:",
                  min = 0, max = 1000,
                  value = 500)

控件 ID, 控件显示标签, 最小值, 最大值, 默认值

pre ,sep 参数可以显示控件标签样式:

animate 参数可以使滑动条自己移动,点击下面的三角形标至即可。

使用 animationOptions 来进一步控制移动效果, interval 为每次移动间隔, loop 表示是否循环移动。有点动图的感觉了。

mainPanel 里输出表格,使用 tableOutput,给个 id 即可。

server 部分

# Define server logic for slider examples ----
server <- function(input, output) {

  # Reactive expression to create data frame of all input values ----
  sliderValues <- reactive({

    data.frame(
      Name = c("Integer",
               "Decimal",
               "Range",
               "Custom Format",
               "Animation"),
      Value = as.character(c(input$integer,
                             input$decimal,
                             paste(input$range, collapse = " "),
                             input$format,
                             input$animation)),
      stringsAsFactors = FALSE)

  })

  # Show the values in an HTML table ----
  output$values <- renderTable({
    sliderValues()
  })

}

# Create Shiny app ----
shinyApp(ui, server)

首先构建了一个 data.frame ,其中的 Value 列传入 ui 的输入变量,最后 使用 reactive 来保存数据框。

mainPanel 的展示使用 renderTable , output$values 连接 ui 部分, sliderValues() 格式传入数据。

最后大家可以自己把代码复制一下跑一遍,看看效果,也可以去在线网址。

网址:

https://shiny.rstudio.com/gallery/sliders.html

3萧瑟

人至暮年, 万物萧瑟之景, 是回忆。



欢迎加入生信交流群。加我微信我也拉你进 微信群聊 老俊俊生信交流群 哦,数据代码已上传至QQ群,欢迎加入下载。

群二维码:

老俊俊微信:


知识星球:



所以今天你学习了吗?

欢迎小伙伴留言评论!

今天的分享就到这里了,敬请期待下一篇!

最后欢迎大家分享转发,您的点赞是对我的鼓励肯定

如果觉得对您帮助很大,赏杯快乐水喝喝吧!



 往期回顾 




ggh4x 包的坐标轴调整技能!

跟着 NC (Nature Comm) 学画图: 箱线图嵌套并分面添加文本注释

跟着 NC (Nature Communications) 学画图: 火山图进阶

跟着 Cell 学绘图: 优美的条形图

shinydashboard 让你制作一个酷炫的页面端

shiny 入门第四课: ui 详解

shiny 入门第三课: 进阶

寻找你心中的 TA !

shiny 入门第二课

shiny 入门第一课

◀...

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存