VISUALISATION TOOL (Ver 3.0)
Current Data Set : Bank Subscription
(https://archive.ics.uci.edu/ml/machine-learning-databases/00222/)
Tool : R Shiny and GGPlot2
Current Plots
Under Version 1.0: Scatter Plots, Bar Plots and Histograms with Data Summary
Under Version 1.0: Scatter Plots, Bar Plots and Histograms with Data Summary
Under Version 2.0: GGVis Plots
Home ScreenPlot Screen
UI.R
| shinyUI( | |
| navbarPage(p(h5(strong("Navigate Bar for Plots"), style = "color:Green")), | |
| tabPanel(p(h3(strong("Input Data"),style = "color:green")), | |
| titlePanel(p(h2("Basic Visualisation Tool",style = "color:orange"))), | |
| br(), | |
| sidebarPanel(style="color:black","Input Data", | |
| wellPanel(fileInput('data', 'Choose CSV File', | |
| accept=c('text/csv', 'text/comma-separated-values,text/plain', '.csv')), | |
| numericInput("obs", "Number of observations to view:",0), | |
| checkboxInput('header', 'Header', TRUE), | |
| radioButtons('sep', 'Delimeter', | |
| c(Comma=',', | |
| Semicolon=';', | |
| Tab='\t'), | |
| 'Semicolon'), | |
| radioButtons('quote', 'Quote', | |
| c(None='', | |
| 'Double Quote'='"', | |
| 'Single Quote'="'"), | |
| 'Double Quote') | |
| ), | |
| width=4 | |
| ), | |
| mainPanel( | |
| tabsetPanel(position ="above", | |
| tabPanel(h4("Description"), | |
| h3("Welcome to R Visuals",style = "color:blue"), | |
| p("R has been a great Tool for Visualisations with numerous packages like ggplot2, ggvis, plotify etc."), | |
| p("This tool intends to cover Basic Plots using",strong("ggplot2",style = "color:blue"), "and", strong("ggvis",style = "color:blue"), "packages"), | |
| br(), | |
| p(strong("Tool Features - Input Data",style = "color:blue")), | |
| p("1. Supports any kind of csv/text datasets"), | |
| p("2. Provides Initial Observations based on Users Input to understand the Structure of Dataset"), | |
| p("3. Provides Summary of Dataset"), | |
| p("4. Provides Structure of Dataset - Very helpful to select Options for Making Plots"), | |
| p("5. Navigate Bar to switch for Plots"), | |
| br(), | |
| p(strong("Tool Features - Basic Plots using",em("ggplot Package"),style = "color:blue")), | |
| p("1. Scatter Plots - For Continuous X and Y Variables "), | |
| p("2. Bar Plots - For Categorical Variables (X) with Option for Fill (Y)"), | |
| p("3. Histograms - For Continuous Variables (only X)"), | |
| p("4. Box Plots - For Categorical Variable (X) and Continous Variable (Y)"), | |
| br(), | |
| p(strong("Tool Features - Advanced Plots using", em("ggvis Package"),style = "color:blue")), | |
| p("1. Scatter Plots - For Continuous X and Y Variables with additional Fill Variable"), | |
| p("2. Smooth Lines - Smoothing on Scatter Plots to observe Trend Patterns"), | |
| br(), | |
| p("Hope you have fun Using the Tool!!!"), | |
| br(), | |
| br(), | |
| br(), | |
| p(em("For any clasrifications/ suggestions feel free to contact me at", em("krish7189@yahoo.co.in",style = "color:blue"),em("or at my blog"),em("rcodeeasy.blogspot.sg",style = "color:blue"))) | |
| ), | |
| tabPanel(h4("DataSet"),h4(textOutput("headname")), | |
| tableOutput("head"), | |
| h4("Summary of the Data Set"), | |
| tableOutput("Summary"), | |
| h4("Structure of Data Set"), | |
| verbatimTextOutput("str") | |
| )))), | |
| tabPanel(p(h3(strong("Basic Plots"),style = "color:green")), | |
| titlePanel(p(h2("GGPlots",style = "color:orange"))), | |
| sidebarPanel("Variable Selection", | |
| wellPanel( | |
| selectInput("xvar","Choose X-axis Variable:",""), | |
| selectInput("yvar","Choose Y-axis Variable:","") | |
| )), | |
| mainPanel( | |
| tabsetPanel(position ="above", | |
| "Scatter Plots", | |
| tabPanel(h4("Scatter Plots"), | |
| h3("Scatter Plots for Continuous X and Y Variables"), | |
| h5("Choose both X and Y Variable for a Scatter Plot"), | |
| plotOutput("ScatterPlot")), | |
| "Bar Plots", | |
| tabPanel(h4("Bar Plot"), | |
| h3("Bar Plots for Categorical Variables"), | |
| h5("Choose X variable for genertaing Bar Plot and Y Variable as a Fill"), | |
| plotOutput("barplot")), | |
| "Histograms", | |
| tabPanel(h4("Histogram"), | |
| h3("Histograms for Continuos Data"), | |
| h5("Choose only x-Variable"),plotOutput("hist")), | |
| "Box Plots", | |
| tabPanel(h4("Box Plots"), | |
| h3("Box plots"), | |
| h5("Choose X (Categorical Variable) and Y (Continuous Variable)"),plotOutput("beanplot")) | |
| ))), | |
| tabPanel(p(h3(strong("Advanced Plots"),style = "color:green")), | |
| titlePanel(p(h2("GGVIS Plots",style = "color:orange"))), | |
| sidebarPanel("Variable Selection", | |
| wellPanel( | |
| selectInput("xvar1","Choose X-axis Variable:",""), | |
| selectInput("yvar1","Choose Y-axis Variable:",""), | |
| selectInput("fill1","Choose fill Variable:","") | |
| )), | |
| mainPanel( | |
| tabsetPanel(position ="above", | |
| "Scatter Plots", | |
| tabPanel(h4("Scatter Plots"), | |
| h3("Scatter Plots for Continuous X and Y Variables along with fill"), | |
| h5("Choose both X and Y Variable along with fill for enhanced visualisation "), | |
| ggvisOutput("plot_scatter"), | |
| uiOutput("plot_scatter_ui")), | |
| "Scatter Plots with Smooth Lines", | |
| tabPanel(h4("Smooth Lines"), | |
| h3("Scatter Plots for Continuous X and Y Variables with Smooth line"), | |
| h5("Choose both X and Y Variable"), | |
| ggvisOutput("plot_smooth"), | |
| uiOutput("plot_smooth_ui")) | |
| ))) | |
| )) |
SERVER.R
| library(shiny) | |
| library(ggplot2) | |
| library(ggvis) | |
| shinyServer(function(input, output,session) | |
| { | |
| InputData <- reactive({inFile <- input$data | |
| if (is.null(inFile)) | |
| return(NULL) | |
| read.csv(inFile$datapath, header=input$header, sep=input$sep, quote=input$quote,stringsAsFactors=FALSE) | |
| }) | |
| output$Summary<-renderTable({ | |
| if (is.null(InputData())) | |
| return(NULL) | |
| summary(InputData()) | |
| }) | |
| output$headname <- renderText({ | |
| paste("First",input$obs, "observations" ) | |
| }) | |
| output$head<-renderTable({ | |
| if (is.null(InputData())) | |
| return(NULL) | |
| head(InputData(),n=input$obs) | |
| }) | |
| output$str<-renderPrint({ | |
| if (is.null(InputData())) | |
| return(NULL) | |
| str(InputData()) | |
| }) | |
| observe({ | |
| data1 <- InputData() | |
| updateSelectInput(session,"xvar",choices=names(data1)) | |
| }) | |
| observe({ | |
| data2 <- InputData() | |
| updateSelectInput(session,"yvar",choices=names(data2)) | |
| }) | |
| observe({ | |
| data3 <- InputData() | |
| updateSelectInput(session,"xvar1",choices=names(data3)) | |
| }) | |
| observe({ | |
| data4 <- InputData() | |
| updateSelectInput(session,"yvar1",choices=names(data4)) | |
| }) | |
| observe({ | |
| data5 <- InputData() | |
| updateSelectInput(session,"fill1",choices=names(data5)) | |
| }) | |
| output$barplot<-renderPlot({ | |
| if (is.null(InputData())) | |
| {return(NULL)} | |
| else { | |
| if(input$yvar == "None") | |
| {ggplot(InputData(), aes_string(x=input$xvar)) + | |
| geom_bar(width=0.5,colour="green")} | |
| else{ | |
| ggplot(InputData(), aes_string(x=input$xvar,fill=input$yvar)) + | |
| geom_bar(width=0.5,colour="green") | |
| }}}) | |
| output$hist<-renderPlot({ | |
| if (is.null(InputData())) | |
| return(NULL) | |
| ggplot(InputData(), aes_string(x=input$xvar)) + | |
| geom_histogram(width=0.5,fill="yellow",colour="darkred") | |
| }) | |
| output$ScatterPlot <- renderPlot({ | |
| if (is.null(InputData())) | |
| return(NULL) | |
| ggplot(InputData(), aes_string(x=input$xvar, y=input$yvar)) + geom_point(colour="darkblue") | |
| }) | |
| output$beanplot <- renderPlot({ | |
| if (is.null(InputData())) | |
| return(NULL) | |
| ggplot(InputData(), aes_string(x=input$xvar, y=input$yvar)) + geom_boxplot(colour="black") | |
| }) | |
| abc<-reactive({if (is.null(InputData())) | |
| return(NULL) | |
| else { | |
| B<-subset( InputData(), select=c(input$xvar1,input$yvar1,input$fill1)) | |
| names(B)<-c("x","y","fill") | |
| return(B) | |
| }}) | |
| observe({ | |
| if (is.null(InputData())) | |
| return(NULL) else { | |
| abc() %>% ggvis(x=~x,y=~y,fill=~fill) %>% | |
| layer_points(size := input_slider(25, 300, label = "Bubble Size")) %>% | |
| add_axis("x", title = input$xvar1) %>% | |
| add_axis("y", title = input$yvar1) %>% | |
| add_legend("fill", title = input$fill1) %>% bind_shiny("plot_scatter", "plot_scatter_ui") | |
| }}) | |
| observe({ | |
| if (is.null(InputData())) | |
| return(NULL) else { | |
| abc() %>% ggvis(x=~x,y=~y,fill=~fill) %>% | |
| layer_points() %>% | |
| layer_smooths(span = input_slider(0.1, 1))%>% | |
| add_axis("x", title = input$xvar1) %>% | |
| add_axis("y", title = input$yvar1) %>% | |
| add_legend("fill", title = input$fill1) %>% bind_shiny("plot_smooth", "plot_smooth_ui") | |
| }}) | |
| }) |
No comments:
Post a Comment