เปลี่ยนขนาดจุด: numeric input
Numeric input มีอาร์กิวเมนต์เพิ่มเติมที่ text input ไม่มี เช่น min และ max ซึ่งกำหนดค่าต่ำสุดและสูงสุดที่ผู้ใช้เลือกได้
โปรดทราบว่าเมื่อเข้าถึงค่าของ input ในโค้ดฝั่ง server Shiny จะรู้โดยอัตโนมัติว่า input ประเภทใดถูกใช้งาน และจะคืนค่าในรูปแบบที่เหมาะสม ดังนั้นหาก numeric input มี ID ว่า "foo" ค่าที่ได้จาก input$foo จะเป็นตัวเลข
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
กรณีศึกษา: การสร้างเว็บแอปพลิเคชันด้วย Shiny ใน R
คำแนะนำการฝึกหัด
โค้ด Shiny app จากแบบฝึกหัดที่แล้วถูกเตรียมไว้ให้แล้ว งานของคุณคือเพิ่ม numeric input เพื่อให้ผู้ใช้ปรับขนาดจุดบนกราฟได้ โดยมีรายละเอียดดังนี้
- เพิ่ม numeric input ใน UI โดยกำหนด ID เป็น "size" ข้อความ label เป็น "Point size" ค่าเริ่มต้นเป็น 1 และค่าต่ำสุดเป็น 1
- เพิ่มโค้ดใน server เพื่อให้ numeric input นี้กำหนดขนาดจุดในกราฟ (บรรทัดที่ 20)
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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)