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ư min và max, 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
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)