55 lines
1.2 KiB
R
55 lines
1.2 KiB
R
library(shiny)
|
|
library(bslib)
|
|
|
|
# Define UI for app that draws a histogram ----
|
|
ui <- page_sidebar(
|
|
|
|
# App title ----
|
|
title = "Hello Shiny!",
|
|
|
|
# Sidebar panel for inputs ----
|
|
sidebar = sidebar(
|
|
|
|
# Input: Slider for the number of bins ----
|
|
sliderInput(
|
|
inputId = "bins",
|
|
label = "Number of bins:",
|
|
min = 1,
|
|
max = 50,
|
|
value = 30
|
|
)
|
|
),
|
|
|
|
# Output: Histogram ----
|
|
plotOutput(outputId = "distPlot")
|
|
)
|
|
|
|
# Define server logic required to draw a histogram ----
|
|
server <- function(input, output) {
|
|
|
|
# Histogram of the Old Faithful Geyser Data ----
|
|
# with requested number of bins
|
|
# This expression that generates a histogram is wrapped in a call
|
|
# to renderPlot to indicate that:
|
|
#
|
|
# 1. It is "reactive" and therefore should be automatically
|
|
# re-executed when inputs (input$bins) change
|
|
# 2. Its output type is a plot
|
|
output$distPlot <- renderPlot({
|
|
x <- faithful$waiting
|
|
bins <- seq(min(x), max(x), length.out = input$bins + 1)
|
|
|
|
hist(
|
|
x,
|
|
breaks = bins,
|
|
col = "#75AADB",
|
|
border = "white",
|
|
xlab = "Waiting time to next eruption (in mins)",
|
|
main = "Histogram of waiting times"
|
|
)
|
|
})
|
|
}
|
|
|
|
# Create Shiny app ----
|
|
shinyApp(ui = ui, server = server)
|