Ändra punktstorleken: numerisk inmatning
Numeriska inmatningsfält har några fler argument än textinmatningsfält, till exempel min och max, som anger det lägsta och högsta tillåtna värdet.
Observera att när ett inmatningsvärde används i serverkoden är Shiny tillräckligt smart för att känna igen vilken typ av inmatning som användes – och därmed vilket typ av objekt som ska returneras. Det innebär att om du har ett numeriskt inmatningsfält med ID "foo" returnerar input$foo ett numeriskt värde.
Den här övningen är en del av kursen
Fallstudier: Bygg webbapplikationer med Shiny i R
Övningsinstruktioner
Koden för Shiny-appen från föregående övning finns tillgänglig. Din uppgift är att lägga till ett numeriskt inmatningsfält som användaren kan använda för att ändra storleken på punkterna i diagrammet. Gör följande:
- Lägg till ett numeriskt inmatningsfält i UI:t med ID "size", etiketten "Point size", standardvärdet 1 och minimivärdet 1.
- Lägg till kod i servern så att det numeriska inmatningsfältet styr punktstorleken i diagrammet (rad 20).
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)