LoslegenKostenlos loslegen

Punktgröße ändern: numerische Eingabe

Numerische Eingabefelder haben ein paar zusätzliche Argumente, die Textfelder nicht haben, zum Beispiel min und max, die die minimalen bzw. maximalen wählbaren Zahlen festlegen.

Beachte: Wenn im Server-Code auf den Wert einer Eingabe zugegriffen wird, erkennt Shiny automatisch, welcher Eingabetyp verwendet wurde, und gibt entsprechend den passenden Objekttyp zurück. Das bedeutet: Wenn du eine numerische Eingabe mit der ID "foo" hast, liefert input$foo einen numerischen Wert.

Diese Übung ist Teil des Kurses

Fallstudien: Webanwendungen mit Shiny in R erstellen

Kurs anzeigen

Anleitung zur Übung

Der Code für die Shiny-App aus der letzten Übung ist vorgegeben. Deine Aufgabe ist es, eine numerische Eingabe hinzuzufügen, mit der Nutzer:innen die Größe der Punkte im Plot ändern können. Konkret:

  • Füge im UI eine numerische Eingabe mit der ID "size", dem Label "Point size", einem Standardwert von 1 und einem Mindestwert von 1 hinzu.
  • Ergänze den Server-Code so, dass die numerische Eingabe die Punktgröße im Plot bestimmt (Zeile 20).

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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)
Code bearbeiten und ausführen