Spaces:
Runtime error
Runtime error
library(shiny) | |
library(bslib) | |
library(dplyr) | |
library(ggplot2) | |
df <- readr::read_csv("penguins.csv") | |
# Find subset of columns that are suitable for scatter plot | |
df_num <- df |> select(where(is.numeric), -Year) | |
ui <- page_fillable(theme = bs_theme(bootswatch = "minty"), | |
layout_sidebar(fillable = TRUE, | |
sidebar( | |
varSelectInput("xvar", "X variables", df_num, selected = "Bill Length (mm)"), | |
varSelectInput("yvar", "Y variables", df_num, selected = "Bill Depth (mm)"), | |
checkboxGroupInput("species", "Filter by species", | |
choices = unique(df$Species), selected = unique(df$Species) | |
), | |
hr(), # Add a horizontal rule | |
checkboxInput("by_species", "Show species", TRUE), | |
checkboxInput("show_margins", "Show marginal plots", TRUE), | |
checkboxInput("smooth", "Add smoother"), | |
), | |
plotOutput("scatter") | |
) | |
) | |
server <- function(input, output, session) { | |
subsetted <- reactive({ | |
req(input$species) | |
df |> filter(Species %in% input$species) | |
}) | |
output$scatter <- renderPlot({ | |
p <- ggplot(subsetted(), aes(.data[[input$xvar]], .data[[input$yvar]])) + | |
theme(legend.position = "bottom") | |
p | |
}) | |
} | |
shinyApp(ui, server) | |