Kom igångKom igång gratis

Gör diagrammet större

Precis som inmatningsfunktioner kan ha olika argument beroende på inmatningstyp, kan även platshållarfunktioner för utdata ha olika argument för att ändra utseende eller beteende.

När du till exempel visar ett diagram i en Shiny-app med plotOutput() är diagrammets höjd som standard 400 pixlar. Funktionen plotOutput() har parametrar som kan användas för att ändra höjden eller bredden på ett diagram.

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 redan på plats. Din uppgift är att göra diagrammet större. Mer specifikt:

  • 600 pixlar högt och 600 pixlar brett. Konsultera dokumentationen för plotOutput() för att ta reda på vilka parametrar du ska använda (rad 18).

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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