Bắt đầu ngayBắt đầu miễn phí

Bố cục có thanh bên (sidebar)

Các hàm bố cục cho phép sắp xếp trực quan các input và output trong UI. Một bố cục phù hợp sẽ giúp ứng dụng Shiny trông bắt mắt hơn và cũng cải thiện trải nghiệm người dùng.

Trong bài tập này, bạn sẽ chỉnh sửa bố cục của một ứng dụng Shiny cho phép người dùng khám phá mức độ phổ biến của các cái tên thịnh hành. Ứng dụng cuối cùng của bạn sẽ trông giống như sau:

An app where the name selector appears in the left sidebar, while the graph appears on the right in the main panel

Bài tập này là một phần của khóa học

Xây dựng ứng dụng web với Shiny trong R

Xem khóa học

Hướng dẫn bài tập

  • Chỉnh sửa bố cục của ứng dụng này để bộ chọn tên xuất hiện trong thanh bên, còn biểu đồ và bảng xuất hiện ở bên phải.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

ui <- fluidPage(
  # MODIFY CODE BELOW: Wrap in a sidebarLayout
    # MODIFY CODE BELOW: Wrap in a sidebarPanel
    selectInput('name', 'Select Name', top_trendy_names$name),
    # MODIFY CODE BELOW: Wrap in a mainPanel
    plotly::plotlyOutput('plot_trendy_names'),
    DT::DTOutput('table_trendy_names')
)

# DO NOT MODIFY
server <- function(input, output, session){
  # Function to plot trends in a name
  plot_trends <- function(){
     babynames %>% 
      filter(name == input$name) %>% 
      ggplot(aes(x = year, y = n)) +
      geom_col()
  }
  output$plot_trendy_names <- plotly::renderPlotly({
    plot_trends()
  })
  
  output$table_trendy_names <- DT::renderDT({
    babynames %>% 
      filter(name == input$name)
  })
}

shinyApp(ui = ui, server = server)
Chỉnh sửa và Chạy Mã