Skip to content

Instantly share code, notes, and snippets.

@bennytowns
Created August 7, 2016 18:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bennytowns/64f234d218e84b740889eee979070050 to your computer and use it in GitHub Desktop.
Save bennytowns/64f234d218e84b740889eee979070050 to your computer and use it in GitHub Desktop.
library(shinydashboard)
library(googleVis)
library(xts)
st.codes=readRDS('st.codes.rds')
other.codes=readRDS('other.codes.rds')
cn.codes=readRDS('cn.codes.rds')
other.con.codes=readRDS('other.con.codes.rds')
total.codes=readRDS('total.codes.rds')
total.con.codes=readRDS('total.con.codes.rds')
cnsm.codes=readRDS('cnsm.codes.rds')
total.cnsm.codes=readRDS('total.cnsm.codes.rds')
price.codes=readRDS('price.codes.rds')
total.price.codes=readRDS('total.price.codes.rds')
source('helpers.R')
shinyServer(function(input,output){
#Render Information Page
# Reactive Functions for Data Selection
dateInput <- reactive({
return(as.character(input$daterange))
})
dateInput2 <- reactive({
return(as.character(input$daterange2))
})
texasInput <- reactive({
if (input$texas==TRUE) {
return(TRUE)
} else{
return(FALSE)
}
})
second_Cond <-reactive({
if (input$data_type=='sum'){
return(1900)
} else {
return(as.character(input$daterange3))
}
})
color_codes <-reactive({
if (input$menu=="map_con") {
if (input$data_type=='sum'){
return(as.character("{values:[0,1000000,4000000],colors:['white','lightgreen','green']}"))
} else {
return(as.character("{values:[-500000,0,500000],colors:['red','white','green']}"))
}
} else {
if (input$data_type=='sum'){
return(as.character("{values:[0,1000000,7500000],colors:['white','lightgreen','green']}"))
} else {
return(as.character("{values:[-5000000,0,5000000],colors:['red','white','green']}"))
}
}
})
timerangeInput <-reactive({
return(paste0(input$daterange,'/',input$daterange2))
})
timerangeInputAnn <-reactive({
return(paste0(input$daterange-1,'/',input$daterange2))
})
#Render Input/Selections
output$filter <- renderUI({
if (input$menu!="info") {
if (input$menu=="map_con") {
selectInput("category","View Consumption By:",c('Total','Residential',
'Industrial','Commercial',
'Electricity'))
} else {
selectInput("category","View Withdrawals From:",c('All Sources','Gas Wells',
'Oil Wells','Shale',
'Coal Beds'))
}
}
})
output$filter1 <- renderUI({
if (input$menu!="info") {
if (input$menu=="charts") {
selectInput("category2","View Consumption By:",c('Total','Residential',
'Industrial','Commercial',
'Electricity'))
} else {
selectInput("data_type","View Statistic:",c('sum','diff'))
}
}
})
output$filter2 <- renderUI({
if (input$menu!="info") {
sliderInput("daterange", "Date range:",
min = 1991,
max = 2014,
value = 2005,animate=TRUE)
}
})
output$filter3 <- renderUI({
if (input$menu!="info") {
if (input$menu=="charts") {
sliderInput("daterange2", "Date range:",
min = 1992,
max = 2014,
value = 2014)
} else {
if (input$data_type == 'sum') {
checkboxInput("texas","Exclude Texas")
} else if (input$data_type == 'diff') {
sliderInput("daterange3", "Date range:",
min = 1992,
max = 2014,
value = 2014)
}
}
}
})
output$filter4 <- renderUI({
if (input$menu!="info") {
if (input$menu=="charts") {
selectInput("chart_filters","Select State:",c('All','Offshore',levels(st.codes$state)))
}
}
})
#Render Withdrawals Maps
output$map <- renderGvis({
colorStr=color_codes()
gvisGeoChart(render_data(st.codes,input$category,dateInput(),texasInput(),second_Cond()),"full",input$data_type,
options=list(region="US",displaymode="regions",
resolution="provinces",width="auto",
height=600,defaultColor="#808080",colorAxis=colorStr))
})
output$mapData <- renderGvis({
if (input$data_type=='sum') {
gvisColumnChart(sortdata(as.data.frame(render_data(st.codes,input$category,dateInput(),texasInput(),second_Cond())),10),"state",input$data_type,
options=list(dataOpacity=0.5))
} else {
gvisColumnChart(sortdiffdata(as.data.frame(render_data(st.codes,input$category,dateInput(),texasInput(),second_Cond())),5),"state",input$data_type,
options=list(dataOpacity=0.5))
}
})
output$other_regions <- renderPlot({
plot_data=sortdata(as.data.frame(render_data(other.codes,input$category,dateInput(),FALSE,second_Cond())),4)
if (input$data_type=='sum'){
barplot(height=plot_data$sum,names.arg=plot_data$state,width=60,space=0.5,col=c('darkgreen','lightgreen'),options(scipen=9),legend=FALSE)
} else {
barplot(height=plot_data$sum,names.arg=plot_data$state,width=60,space=0.5,col=c('darkgreen','lightgreen'),options(scipen=7),legend=FALSE)
}
})
output$total_US <- renderText({
if (input$data_type=='sum') {
paste("Total US Withdrawals: ",format(render_data(total.codes,input$category,dateInput(),texasInput(),second_Cond())[3]))
} else{
paste("Total US Withdrawals: ",format(render_data(total.codes,input$category,dateInput(),texasInput(),second_Cond())[4]))
}
})
#Render Consumption Map
output$map_cons <- renderGvis({
colorStr=color_codes()
gvisGeoChart(render_data(cnsm.codes,input$category,dateInput(),texasInput(),second_Cond()),"full",input$data_type,
options=list(region="US",displaymode="regions",
resolution="provinces",width="auto",
height=600,defaultColor="#808080",colorAxis=colorStr))
})
output$other_con_regions <- renderPlot({
plot_data=sortdata(as.data.frame(render_data(other.con.codes,'Consumption',dateInput(),FALSE,second_Cond())),4)
if (input$data_type=='sum'){
barplot(height=plot_data$sum,names.arg=plot_data$state,width=60,space=0.5,col=c('darkgreen','lightgreen'),options(scipen=9),legend=FALSE)
} else {
barplot(height=plot_data$sum,names.arg=plot_data$state,width=60,space=0.5,col=c('darkgreen','lightgreen'),options(scipen=7),legend=FALSE)
}
})
output$map_consData <- renderGvis({
if (input$data_type=='sum') {
gvisColumnChart(sortdata(as.data.frame(render_data(cnsm.codes,input$category,dateInput(),texasInput(),second_Cond())),10),"state",input$data_type,
options=list(dataOpacity=0.5))
} else {
gvisColumnChart(sortdiffdata(as.data.frame(render_data(cnsm.codes,input$category,dateInput(),texasInput(),second_Cond())),5),"state",input$data_type,
options=list(dataOpacity=0.5))
}
})
output$total_con_US <- renderText({
if (input$data_type=='sum') {
paste("Total US Consumption: ",format(render_data(total.cnsm.codes,input$category,dateInput(),texasInput(),second_Cond())[3]))
} else{
paste("Total US Consumption: ",format(render_data(total.cnsm.codes,input$category,dateInput(),texasInput(),second_Cond())[4]))
}
})
#Render Charts
output$chart <- renderPlot({
if (input$chart_filters=='All') {
plot.xts(chart_data(total.codes,input$category,timerangeInput(),'US'),main=paste('Total',input$category,'US Natural Gas Withdrawals, Bcf'))
} else if (input$chart_filters=='Offshore') {
plot.xts(chart_data(other.codes,input$category,timerangeInput(),'FX'),main='Federal Offshore Gas Withdrawals, Bcf')
} else {
plot.xts(chart_data(st.codes,input$category,timerangeInput(),input$chart_filters),main=paste(input$chart_filters,input$category,'Natural Gas Withdrawals, Bcf'))
}
})
output$chart2 <- renderPlot({
if (input$chart_filters=='All') {
plot.xts(chart_data(total.cnsm.codes,input$category2,timerangeInput(),'US'),main='Total US Natural Gas Consumption, BCf')
} else if (input$chart_filters=='Offshore') {
plot.xts(chart_data(other.con.codes,'Consumption',timerangeInputAnn(),'3F'),main='Federal Offshore Natural Gas Consumption, Bcf')
} else {
plot.xts(chart_data(cnsm.codes,input$category2,timerangeInput(),input$chart_filters),main=paste(input$chart_filters,input$category2,'Natural Gas Consumption, BCf'))
}
})
output$chart3 <- renderPlot({
if (input$chart_filters=='All') {
plot.xts(chart_data(total.price.codes,'Price',timerangeInput(),'US'),main='Total US Natural Gas Price')
} else if (input$chart_filters=='Offshore') {
plot.xts(chart_data(total.price.codes,'Price',timerangeInput(),'US'),main='Total US Natural Gas Price')
} else {
plot.xts(chart_data(price.codes,'Price',timerangeInput(),input$chart_filters),main=paste(input$chart_filters,'Natural Gas Price'))
}
})
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment