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

Thay đổi kích thước điểm: numeric input

Numeric input có thêm một vài đối số mà text input không có, như minmax, dùng để xác định giá trị nhỏ nhất và lớn nhất có thể chọn.

Lưu ý: khi truy cập giá trị của một input trong mã server, Shiny đủ “thông minh” để biết loại input được dùng, và do đó biết kiểu đối tượng cần trả về. Điều này có nghĩa là nếu bạn có một numeric input với ID "foo", thì input$foo sẽ trả về một giá trị số (numeric).

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

Nghiên cứu tình huống: 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

Mã cho ứng dụng Shiny từ bài tập trước đã được cung cấp. Nhiệm vụ của bạn là thêm một numeric input để người dùng có thể thay đổi kích thước của các điểm trên biểu đồ. Cụ thể:

  • Thêm một numeric input vào UI với ID "size", nhãn "Point size", giá trị mặc định 1, và giá trị tối thiểu 1.
  • Thêm mã vào server để numeric input quyết định kích thước điểm trên biểu đồ (dòng 20).

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.

# Define UI for the application
ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      textInput("title", "Title", "GDP vs life exp"),
      # Add a size numeric input
      ___
    ),
    mainPanel(
      plotOutput("plot")
    )
  )
)

# Define the server logic
server <- function(input, output) {
  output$plot <- renderPlot({
    ggplot(gapminder, aes(gdpPercap, lifeExp)) +
      # Use the size input as the plot point size
      geom_point(size = ___) +
      scale_x_log10() +
      ggtitle(input$title)
  })
}

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