Shiny app graphing NZ CO2 (eqv) emissions from 1990 to 2010 https://shiny.petras.space/Emissions/
rstats
statistics
rshiny
climate-change
new-zealand

app.R 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. library(shiny)
  2. library(ggplot2)
  3. library(scales)
  4. library(tidyverse)
  5. library(readxl)
  6. Emissions.Sector <- read_excel("Emissions1990-2010.xlsx",
  7. sheet = "Sector")
  8. Emissions.Fuel <- read_excel("Emissions1990-2010.xlsx",
  9. sheet = "Fuel")
  10. Sector.Tot <- filter(Emissions.Sector, Source == "Total")
  11. sectors.a <- unique(Emissions.Sector$Sector)
  12. sectors <- unique(Emissions.Sector$Sector)[-1]
  13. # gather(comf, key="Year", value="Co2eqv", as.character(1990:2010))
  14. Sector.Fuels <- function(sector) {
  15. sf <- filter(Emissions.Sector, Sector == sector)
  16. if (nrow(sf) > 1) {
  17. sf <- filter(sf, !grepl("Total", Source))
  18. }
  19. return(sf)
  20. }
  21. # UI ----
  22. ui <- fluidPage(
  23. titlePanel("NZ greenhouse gas emissions 1990-2010"),
  24. sidebarLayout(
  25. # Sidebar ----
  26. sidebarPanel(
  27. ),
  28. # Main panel ----
  29. mainPanel(
  30. tabsetPanel(id="tabs",
  31. tabPanel("by-sector",
  32. plotOutput("secPlot")
  33. )
  34. )
  35. )
  36. )
  37. )
  38. server <- function(input, output) {
  39. SecOverall <- reactive({
  40. st <- gather(Sector.Tot, key="Year",
  41. value="Co2eqv", as.character(1990:2010)) %>%
  42. mutate(Year = as.numeric(Year),
  43. Sector = factor(Sector, levels=unique(Sector)))
  44. # Add logic for filtering out years, sectors here
  45. return(st)
  46. })
  47. output$secPlot <- renderPlot({
  48. sov <- SecOverall()
  49. ggplot(sov, aes(x=Year, y=Co2eqv, linetype=Sector, color=Sector)) +
  50. geom_line(size=1.5) + guides(linetype=guide_legend(keywidth = 3)) +
  51. scale_y_log10() -> s.p
  52. return(s.p)
  53. })
  54. }
  55. shinyApp(ui = ui, server = server)