iT邦幫忙

2023 iThome 鐵人賽

DAY 28
0

在R語言中也可以製作互動式網頁,使用的是shiny這個套件,優點是可以簡單、快速建立一個網頁,對不會寫前端的人來說,是一個很方便的選擇,缺點則是效能較不好,且不符合前後端分離的架構。
shiny中可以把整個服務分成兩塊,uiserver,最後再用shinyApp()呼叫來建立。

ui主要是用來設計網頁上的呈現,server主要是接收ui資訊後進行指令執行,
以下使用iris資料做舉例:
製作一個網頁呈現不同品種的鳶尾花瓣長度,結果如下
https://ithelp.ithome.com.tw/upload/images/20230929/20162612maKsWheG63.png

# 載入套件
library(shiny)
library(ggplot2)
data("iris")

ui = fluidPage(
  # 建立下拉選單及選項
  selectInput("Species", "Choose Species:",
              list(`Species` = list("setosa", "versicolor", "virginica")),
              multiple = TRUE
  ),
  mainPanel(plotOutput("plot2"))
  )

server = function(input, output) {
  
  data <- reactive({
    # 帶入使用者在畫面上的選擇來過濾資料
    test <- iris[iris$Species %in% input$Species,]
    test
  })
  
  
  output$plot2<-renderPlot({
    # 根據上方資料繪製散佈圖
    ggplot(data = data()) +
      aes(x = Petal.Length, y = Petal.Width) +
      geom_point(aes(color = Species))
    
  })
}


shinyApp(ui, server)


上一篇
[Day27] R markdown套件
下一篇
[Day29] R語言API- plumber
系列文
30天成為資料分析師-手把手R語言與資料分析教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言