레이아웃과 테마

R로 Shiny 웹 애플리케이션 만들기

Kaelen Medeiros

Data Scientist

기본 Shiny 앱 레이아웃

ui <- fluidPage(
  titlePanel("Histogram"),
  sliderInput('nb_bins', '# Bins', 5, 10, 5),
  plotOutput('hist')
)
server <- function(input, output, session){
  output$hist <- renderPlot({
    hist(faithful$waiting, 
         breaks = input$nb_bins, 
         col = 'steelblue')
  })
}
shinyApp(ui = ui, server = server)

대기 시간 히스토그램과 구간 수를 조절하는 슬라이더가 있는 앱

R로 Shiny 웹 애플리케이션 만들기

사이드바 레이아웃

ui <- fluidPage(
  titlePanel("Histogram"),
  sidebarLayout(
    sidebarPanel(sliderInput('nb_bins', 
                             '# Bins', 5, 10, 5)),
    mainPanel(plotOutput('hist'))
  )
)
server <- function(input, output, session){
  output$hist <- renderPlot({
    hist(faithful$waiting, breaks = input$nb_bins, 
         col = 'steelblue')
  })
}
shinyApp(ui = ui, server = server)

오른쪽에 대기 시간 히스토그램, 왼쪽에 구간 수를 조절하는 슬라이더가 있는 앱

R로 Shiny 웹 애플리케이션 만들기

탭 레이아웃

오른쪽에 대기 시간 히스토그램, 왼쪽에 구간 수를 조절하는 슬라이더가 있는 앱

오른쪽에 대기 시간 히스토그램, 왼쪽에 구간 수를 조절하는 슬라이더가 있고 두 개의 탭이 있는 앱

R로 Shiny 웹 애플리케이션 만들기

탭 레이아웃

ui <- fluidPage(
  titlePanel("Histogram"),
  sidebarLayout(
    sidebarPanel(sliderInput('nb_bins', '# Bins', 
                             5, 10, 5)),
    mainPanel(

tabsetPanel( tabPanel('Waiting', plotOutput('hist_waiting')), tabPanel('Eruptions', plotOutput('hist_eruptions')) )
) ) )
server <- function(input, output, session){
  output$hist_waiting <- renderPlot({
    hist(faithful$waiting, 
         breaks = input$nb_bins, 
         col = 'steelblue')
  })
  output$hist_eruptions <- renderPlot({
    hist(faithful$eruptions, 
         breaks = input$nb_bins, 
         col = 'steelblue')
  })
}
shinyApp(ui = ui, server = server)
R로 Shiny 웹 애플리케이션 만들기

테마 선택기

ui <- fluidPage(
  titlePanel("Histogram"),

shinythemes::themeSelector(),
sidebarLayout( sidebarPanel(sliderInput('nb_bins', '# Bins', 5, 10, 5)), mainPanel(plotOutput('hist')) ) ) server <- function(input, output, session){ output$hist <- renderPlot({ hist(faithful$waiting, breaks = input$nb_bins, col = 'steelblue') }) } shinyApp(ui = ui, server = server)

오른쪽에 대기 시간 히스토그램, 왼쪽에 구간 수를 조절하는 슬라이더와 떠 있는 테마 선택기가 있는 앱

R로 Shiny 웹 애플리케이션 만들기

테마 추가

ui <- fluidPage(
  titlePanel("Histogram"),

theme = shinythemes::shinytheme('superhero'),
sidebarLayout( sidebarPanel(sliderInput('nb_bins', '# Bins', 5, 10, 5)), mainPanel(plotOutput('hist')) ) ) server <- function(input, output, session){ output$hist <- renderPlot({ hist(faithful$waiting, breaks = input$nb_bins, col = 'steelblue') }) } shinyApp(ui = ui, server = server)

오른쪽에 대기 시간 히스토그램, 왼쪽에 구간 수를 조절하는 슬라이더가 있는 앱

R로 Shiny 웹 애플리케이션 만들기

연습해 봅시다!

R로 Shiny 웹 애플리케이션 만들기

Preparing Video For Download...