160 lines
4.7 KiB
R
160 lines
4.7 KiB
R
library(shiny) # Main library
|
|
library(ggplot2) # Plots
|
|
library(dplyr) # Data manipulate
|
|
library(shinythemes)
|
|
library(plotly)
|
|
|
|
CO_data <- read.csv("./data.csv", header= TRUE)
|
|
|
|
col_names = colnames(CO_data)
|
|
|
|
countries <- unique(CO_data['country'])
|
|
|
|
ui <- navbarPage(
|
|
titlePanel(title=div(img(src="https://siw.amu.edu.pl/__data/assets/file/0004/162751/logo_wersja-podstawowa_granat_1.jpg", width = 50, height = 50), 'explore CO2 data')),
|
|
tabPanel("Linear Chart",
|
|
sidebarLayout(
|
|
sidebarPanel(
|
|
selectInput('country',
|
|
'Select Country',
|
|
selected = 'Afghanistan',
|
|
choices = countries
|
|
),
|
|
selectInput('category',
|
|
'Select Category',
|
|
selected = 'population',
|
|
choices = col_names
|
|
)
|
|
),
|
|
|
|
mainPanel(
|
|
plotlyOutput('linear_chart')
|
|
),
|
|
)
|
|
),
|
|
tabPanel(
|
|
'GDP',
|
|
plotlyOutput('gdp')
|
|
),
|
|
tabPanel(
|
|
'TOP Production',
|
|
fluidRow(
|
|
column(6,plotlyOutput(outputId="the_most_1")),
|
|
column(6,plotlyOutput(outputId="the_most_2")),
|
|
column(6,plotlyOutput(outputId="the_most_3"))
|
|
)
|
|
),
|
|
tabPanel(
|
|
'Smallest production',
|
|
fluidRow(
|
|
column(6,plotlyOutput(outputId="the_least_1")),
|
|
column(6,plotlyOutput(outputId="the_least_2")),
|
|
column(6,plotlyOutput(outputId="the_least_3"))
|
|
)
|
|
),
|
|
|
|
tabPanel(
|
|
'Data',
|
|
DT::dataTableOutput('tableData')
|
|
),
|
|
|
|
tabPanel(
|
|
'Theme',
|
|
shinythemes::themeSelector(),
|
|
theme = shinythemes::shinytheme('flatly'),
|
|
)
|
|
)
|
|
|
|
|
|
server <- function(input, output, session) {
|
|
output$tableData <- DT::renderDataTable({
|
|
CO_data %>%
|
|
filter(country == input$country) %>%
|
|
DT::datatable()
|
|
})
|
|
|
|
output$linear_chart <- renderPlotly({
|
|
CO_data %>%
|
|
filter(country == input$country) %>%
|
|
ggplot(aes(x = year, y = get(input$category))) +
|
|
geom_line()
|
|
})
|
|
output$gdp <- renderPlotly({
|
|
CO_data %>%
|
|
filter(year == 2011) %>%
|
|
ggplot(aes(x = gdp, y = co2, label = country)) +
|
|
geom_line() +
|
|
geom_point() +
|
|
ggtitle('Placement of countries by CO2 and GDP production')
|
|
})
|
|
output$the_most_1 = renderPlotly({
|
|
CO_data %>%
|
|
filter(year==2011) %>%
|
|
slice_max(n=7, order_by = co2_per_gdp) %>%
|
|
ggplot(aes(x=country, y=co2_per_gdp, fill=country)) +
|
|
xlab('Country') +
|
|
ylab('CO2 per GDP') +
|
|
ggtitle('The TOP production per GDP') +
|
|
theme(axis.text.x = element_blank()) +
|
|
geom_bar(stat='identity')
|
|
})
|
|
output$the_most_2 = renderPlotly({
|
|
CO_data %>%
|
|
filter(year==2011) %>%
|
|
slice_max(n=7, order_by = co2_per_capita) %>%
|
|
ggplot(aes(x=country, y=co2_per_capita, fill=country), custom) +
|
|
xlab('Country') +
|
|
ylab('CO2 per capita') +
|
|
ggtitle('The TOP production per capita') +
|
|
theme(axis.text.x = element_blank()) +
|
|
geom_bar(stat='identity')
|
|
})
|
|
output$the_most_3 = renderPlotly({
|
|
CO_data %>%
|
|
filter(year==2011) %>%
|
|
slice_max(n=7, order_by = co2_per_capita) %>%
|
|
ggplot(aes(x=country, y=co2_per_capita, fill=country)) +
|
|
xlab('Country') +
|
|
ylab('CO2 overall') +
|
|
ggtitle('The TOP production overall') +
|
|
theme(axis.text.x = element_blank()) +
|
|
geom_bar(stat='identity')
|
|
})
|
|
output$the_least_1 = renderPlotly({
|
|
CO_data %>%
|
|
filter(year==2011) %>%
|
|
slice_min(n=7, order_by = co2_per_gdp) %>%
|
|
ggplot(aes(x=country, y=co2_per_gdp, fill=country)) +
|
|
xlab('Country') +
|
|
ylab('CO2 per GDP') +
|
|
ggtitle('The smalest production per GDP') +
|
|
theme(axis.text.x = element_blank()) +
|
|
geom_bar(stat='identity')
|
|
})
|
|
output$the_least_2 = renderPlotly({
|
|
CO_data %>%
|
|
filter(year==2011) %>%
|
|
slice_min(n=7, order_by = co2_per_capita) %>%
|
|
ggplot(aes(x=country, y=co2_per_capita, fill=country)) +
|
|
xlab('Country') +
|
|
ylab('CO2 per capita') +
|
|
ggtitle('The smalest production per capita') +
|
|
theme(axis.text.x = element_blank()) +
|
|
geom_bar(stat='identity')
|
|
})
|
|
output$the_least_3 = renderPlotly({
|
|
CO_data %>%
|
|
filter(year==2011) %>%
|
|
slice_min(n=7, order_by = co2) %>%
|
|
ggplot(aes(x=country, y=co2, fill=country)) +
|
|
xlab('Country') +
|
|
ylab('CO2 overall') +
|
|
ggtitle('The smalest production overall') +
|
|
theme(axis.text.x = element_blank()) +
|
|
geom_bar(stat='identity')
|
|
})
|
|
}
|
|
|
|
|
|
shinyApp(ui = ui, server = server)
|