Je plot groter maken
Net zoals invoerfuncties verschillende argumenten kunnen hebben afhankelijk van het type input, kunnen ook uitvoer-placeholderfuncties verschillende argumenten hebben om hun uiterlijk of gedrag aan te passen.
Wanneer je bijvoorbeeld een plot toont in een Shiny-app met plotOutput(), is de hoogte van de plot standaard 400 pixels. De functie plotOutput() heeft parameters waarmee je de hoogte of breedte van een plot kunt aanpassen.
Deze oefening maakt deel uit van de cursus
Casestudies: webapplicaties bouwen met Shiny in R
Oefeninstructies
De code voor de Shiny-app uit de vorige oefening is meegegeven. Jouw taak is om de plot groter te maken. Specifiek:
- 600 pixels hoog en 600 pixels breed. Raadpleeg de documentatie van
plotOutput()om te zien welke parameters je moet gebruiken (regel 18).
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
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)