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
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)