Kom igångKom igång gratis

Ä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

Visa kurs

Ö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)
Redigera och kör kod