「R shiny基礎」增加一些小控件

在學完基礎的網(wǎng)頁布局后,我們就可以學學如何在網(wǎng)頁中加一些控件,讓網(wǎng)頁顯得可以交互(要想真的能夠交互,還得學下一節(jié)的內容)。

那什么叫做控件呢?所謂的控件就是用戶能夠與其互動的網(wǎng)頁元素。Shiny自帶的一些控制插件如下:

函數(shù) 插件功能
actionButton 操作按鈕
checkboxGroupInput 一組復選框
checkboxInput 單個復選框
dateInput 單個日期選擇
dateRangeInput 一組日期選擇
fileInput 文件上傳A file upload control wizard
helpText 可添加到輸入窗體的幫助文本
numericInput 數(shù)字輸入
radioButtons 單選按鈕
selectInput 一個可供選擇的框
sliderInput 滑動條
submitButton 提交按鈕
textInput 輸入文本的字段

具體這些函數(shù)在網(wǎng)頁展示是什么效果呢? 其實Shiny也想到了,所以給了一個控件全景圖

展覽

增加控件

讓我們繼續(xù)從一個非常j簡單的布局開始,嘗試添加幾個控件。

ui <- fluidPage(
  
  titlePanel("Hello Widgets"),
  
  sidebarLayout(
    sidebarPanel(),
    mainPanel()
  )
)

以文本輸入控件textInput為例,

textInput(inputId, label, value = "", width = NULL,
  placeholder = NULL)

前兩個參數(shù)分別是該控件的唯一ID和在網(wǎng)頁中顯示的名字,所有控件的前兩個都是這兩個參數(shù)。第一個參數(shù)在所有插件中必須唯一,后續(xù)的數(shù)據(jù)交互時shiny需要根據(jù)這個ID獲取輸入信息。

加入該控件的代碼如下

ui <- fluidPage(
  
  titlePanel("Hello Widgets"),
  
  sidebarLayout(
    sidebarPanel(
     h1("Please input your name"),
     textInput("input1", label = "", value = "",
               placeholder = "your name")
      
    ),
    mainPanel(
      h1("Showing results")
    )
  )
)

輸入對應的是HTML中的<input>元素,里面的屬性type="text"表明它的輸入數(shù)據(jù)是文本。

檢查元素

練習

這部分的內容主要是了解,在后續(xù)需要時挑選對應的工具,如下 是練習題

練習題

如下是我寫的代碼

library(shiny)

ui <- fluidPage(
  
  titlePanel("censusVis"),
  
  sidebarLayout(
    sidebarPanel(
      helpText("Create demographic maps with information from the 2010 US census"),
      selectInput("checkBox1", 
                         label = "choose a variable to display",
                         choices = list("A"=1,
                                        "B"=2)
                         ),
      sliderInput("sliderInput", 
                  label = "Range of interest",
                  min = 0, max=100, value = c(0,100), step=10)
      
    ),
    mainPanel(
    )
  )
)

server <- function(input, output){
}


shinyApp(ui = ui, server = server)

那么如何根據(jù)輸入調整輸出呢?這就是下一節(jié)的內容了

參考資料

傳送門

Shiny基礎教程:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容