Petra Lamborn 5 years ago
parent
commit
b7e2e1a9a4
1 changed files with 42 additions and 8 deletions
  1. 42
    8
      app.R

+ 42
- 8
app.R View File

@@ -33,12 +33,26 @@ ui <- fluidPage(
33 33
    sidebarLayout(
34 34
       # Sidebar ----
35 35
       sidebarPanel(
36
-      ),
36
+        sliderInput("secyears", "Date range", 
37
+                    min=1990, max=2010, value=c(1990, 2010),
38
+                    sep="", step=1),
39
+        selectInput("secscale", "Scale", 
40
+                    choices=c("y", "sqrt(y)", "log10(y)"), selected="y"),
41
+        checkboxGroupInput("secSectors", "Sectors", 
42
+                           choices=sectors.a, selected = sectors.a),
43
+        checkboxInput("seclegend", "Show legend", value=TRUE),
44
+        checkboxInput("secminc", "Set minimum", value=FALSE),
45
+        conditionalPanel("input.secminc",
46
+                         numericInput("secmin", label=NULL, value=NA)),
47
+        checkboxInput("secmaxc", "Set maximum", value=FALSE),
48
+        conditionalPanel("input.secmaxc",
49
+                         numericInput("secmax", label=NULL, value=NA)),
50
+      width=3),
37 51
       
38 52
       # Main panel ----
39 53
       mainPanel(
40 54
         tabsetPanel(id="tabs",
41
-                   tabPanel("by-sector", 
55
+                   tabPanel("By Sector", 
42 56
                             plotOutput("secPlot")
43 57
                             )
44 58
                     )
@@ -50,17 +64,37 @@ server <- function(input, output) {
50 64
   SecOverall <- reactive({
51 65
     st <- gather(Sector.Tot, key="Year",
52 66
                  value="Co2eqv", as.character(1990:2010)) %>% 
53
-      mutate(Year = as.numeric(Year), 
54
-             Sector = factor(Sector, levels=unique(Sector)))
55
-    # Add logic for filtering out years, sectors here
67
+      mutate(Year = as.integer(Year), 
68
+             Sector = factor(Sector, levels=unique(Sector))) %>%
69
+    # Logic for filtering out years, sectors here
70
+      filter(Year %in% input$secyears[1]:input$secyears[2], 
71
+             Sector %in% input$secSectors) %>%
72
+      mutate(Year = as.Date(paste0(Year, "-01-01")))
56 73
     return(st)
57 74
   })
58 75
    
59 76
   output$secPlot <- renderPlot({
60 77
     sov <- SecOverall()
61
-    ggplot(sov, aes(x=Year, y=Co2eqv, linetype=Sector, color=Sector)) + 
62
-      geom_line(size=1.5) + guides(linetype=guide_legend(keywidth = 3)) +
63
-      scale_y_log10() -> s.p
78
+    ggplot(sov, aes(x=Year, 
79
+                    y=Co2eqv, linetype=Sector, color=Sector)) -> s.p
80
+    s.p + geom_line(size=1.5, na.rm=TRUE) -> s.p
81
+    s.p + guides(linetype=guide_legend(keywidth = 5)) -> s.p
82
+    s.p + theme_linedraw() -> s.p
83
+    s.p + theme(legend.position = "right", 
84
+                legend.title = element_blank()) -> s.p
85
+    s.p + ylab("CO₂ equivalent (kt)") -> s.p
86
+    if (!input$seclegend) {
87
+      s.p + theme(legend.position="none") -> s.p
88
+    }
89
+    mmx <- c(ifelse(input$secminc, input$secmin, NA),
90
+             ifelse(input$secmaxc, input$secmax, NA))
91
+    if (input$secscale == "sqrt(y)") {
92
+      s.p + scale_y_sqrt(breaks=pretty_breaks(n=5), limits=mmx) -> s.p
93
+    } else if (input$secscale == "log10(y)") {
94
+      s.p + scale_y_log10(breaks=pretty_breaks(n=5), limits=mmx) -> s.p
95
+    } else {
96
+      s.p + scale_y_continuous(breaks=pretty_breaks(n=5), limits=mmx) -> s.p
97
+    }
64 98
     return(s.p)
65 99
   })
66 100
 }