iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
0
自我挑戰組

使用R進行探索式資料分析之初探系列 第 24

R互動式網頁_Shiny Plot

  • 分享至 

  • xImage
  •  

上一篇中將資料集以renderTable()涵式以往頁方式呈現,並以動態的方式進行選擇,讓使用者能夠清楚瞭該資料集的結構,而今天我們將了解繪圖的部分,一樣我們還是使用鐵達尼的資料集,並以上一篇的程式碼為基礎進行程式碼的撰寫

首先我們在ui.R撰寫,程式如下

library(shiny)
ui <- fluidPage(
  titlePanel("This is a demo"),
  sidebarLayout(
    sidebarPanel(
      selectInput("inState","請依鐵達尼資料集選擇欄位",choices = names(titanic))
    ),
    mainPanel(
      plotOutput("titanicData")
    )
  )
)

上圖程式碼跟上一篇差不多,不一樣,choices = names(titanic),告訴Shiny套件鐵達尼資料集內所有的變數都可進行選擇;在上一篇我們要呈現資料集的表格,而本次要呈現圖形所以採用 plotOutput("titanicData")涵式告知套件,接下進入到server.R檔案撰寫,程式如下

library(shiny)
server <- shinyServer(function(input,output){
  output$titanicData <- renderPlot({
    hist(titanic[,input$inState])
   
 #stateFilter <- subset(titanic,titanic$Pclass == input$inState)
  })
})

我們把上一篇的語法變為註解,我們可以發現兩者不同之處,告訴套件我們要繪圖renderPlot(),而圖怎麼多我們要要會甚麼圖ㄋ?所以告訴套件繪製直方圖hist(),那直方圖的資料你需要以哪個值為主input$inState,而這個就是在ui.R檔案所設的變數名稱,而我們可以注意input$inState在逗號的右邊,意思為選擇欄相對在逗號的左邊為選擇行,而詳細的部分可參考本篇的第一篇。

最後的成果如下圖
https://ithelp.ithome.com.tw/upload/images/20200924/20120756nsw3RaiIwZ.jpg

若你的欄位是字串會出現錯誤畫面,不過這不影響我們要講的重點!

下一篇見!


上一篇
R互動式網頁_Shiny table
下一篇
R互動式網頁_DataTable
系列文
使用R進行探索式資料分析之初探30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言