LoslegenKostenlos starten

Mach deinen Plot größer

Genauso wie Eingabefunktionen je nach Eingabetyp verschiedene Argumente haben können, verfügen auch Output-Platzhalterfunktionen über unterschiedliche Argumente, um ihr Aussehen oder Verhalten anzupassen.

Wenn du zum Beispiel in einer Shiny-App einen Plot mit plotOutput() anzeigst, ist die Standardhöhe des Plots 400 Pixel. Die Funktion plotOutput() hat einige Parameter, mit denen sich die Höhe oder Breite eines Plots ändern lässt.

Diese Übung ist Teil des Kurses

<Kurs>Fallstudien: Webanwendungen mit Shiny in R erstellen</Kurs>
Kurs ansehen

Übungsanweisungen

Der Code für die Shiny-App aus der letzten Übung ist gegeben. Deine Aufgabe ist es, den Plot zu vergrößern. Konkret:

  • 600 Pixel hoch und 600 Pixel breit. Du kannst in der Dokumentation zu plotOutput() nachsehen, welche Parameter du verwenden musst (Zeile 18).

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      textInput("title", "Title", "GDP vs life exp"),
      numericInput("size", "Point size", 1, 1),
      checkboxInput("fit", "Add line of best fit", FALSE),
      colourInput("color", "Point color", value = "blue"),
      selectInput("continents", "Continents",
                  choices = levels(gapminder$continent),
                  multiple = TRUE,
                  selected = "Europe"),
      sliderInput("years", "Years",
                  min(gapminder$year), max(gapminder$year),
                  value = c(1977, 2002))
    ),
    mainPanel(
      # Make the plot 600 pixels wide and 600 pixels tall
      plotOutput("plot", ___, ___)
    )
  )
)

# Define the server logic
server <- function(input, output) {
  output$plot <- renderPlot({
    data <- subset(gapminder,
                   continent %in% input$continents &
                     year >= input$years[1] & year <= input$years[2])
    
    p <- ggplot(data, aes(gdpPercap, lifeExp)) +
      geom_point(size = input$size, col = input$color) +
      scale_x_log10() +
      ggtitle(input$title)
    
    if (input$fit) {
      p <- p + geom_smooth(method = "lm")
    }
    p
  })
}

shinyApp(ui = ui, server = server)
Code bearbeiten und ausführen