# # This is a Shiny web application. You can run the application by clicking # the 'Run App' button above. # # Find out more about building applications with Shiny here: # # http://shiny.rstudio.com/ # # Documentation: for Shiny 1.6 # https://shiny.rstudio.com/reference/shiny/1.6.0/ ## Instructions: ## Build a shiny app from this simplified default template. ## 1. - Instead of old geyser, generate a 1000 random values and plot this with a histogram. ## 2. change the title ## 3. Also plot the values you generated against the vals variable using a qqplot. ## 4. Add some other html using tags$ or one of the tags shortcuts library(shiny) library(ggplot2) library(gridExtra) ##read the following in only once: vals <- rnorm(5000) # Define UI for application that draws a histogram ui <- fluidPage( # Application title titlePanel("Random uniform data"), sliderInput("bins", "Number of bins:", min = 1, max = 50, value = 30), # Show a plot of the generated distribution plotOutput("distPlot"), tags$a("Link to wikipedia",href="http://en.wikipedia.org") #Link to Wikipedia ) # Define server logic required to draw a histogram server <- function(input, output) { output$distPlot <- renderPlot({ # generate bins based on input$bins from ui.R x <- runif(1000) # draw the histogram with the specified number of bins a <- as.data.frame(x) |> ggplot(aes(x=x)) +geom_histogram(bins=input$bins,fill="orange2",color="black") + theme_bw() b <- as.data.frame(x) |> ggplot(aes(sample=x)) + geom_qq() + theme_bw() grid.arrange(a,b,ncol=2) #par(mfrow=c(1,2)) #nbins <- seq(min(x), max(x), length.out = input$bins + 1) #hist(x, breaks = nbins, col = 'darkgray', border = 'white') #qqplot(x,vals) }) } # Run the application shinyApp(ui = ui, server = server)