2017-12-27 3 views
1

Ich habe eine Shiny-Anwendung, die die Beziehung zwischen Rasse und Anzahl der Mitarbeiter in Silicon Valley Unternehmen zeigt. Die Symbolleiste auf der linken Seite ist sichtbar, aber das Diagramm wird nicht angezeigt. Wie sollte ich meinen Code ändern? HierDiagramm zeigt nicht in Shiny

ist der Code:

library(shiny) 
library(ggplot2) 
library(dplyr) 

bcl <- read.csv("E:/country/data/reveal.csv") 

ui <- fluidPage(
titlePanel("Silicon valley"), 
sidebarLayout(
sidebarPanel(
sliderInput("countInput", "count", 0, 100, c(25, 40)), 
radioButtons("jobInput", "Job category", 
       choices = c("Technicians", "Professionals", "Sales workers", "Administrative support"), 
       selected = "Technicians"), 
selectInput("companyInput", "company", 
       choices = c("Twitter", "Uber", "View")) 
), 
mainPanel(
    plotOutput("coolplot"), 
    br(), br(), 
    tableOutput("results") 
) 
) 
) 

server <- function(input, output) { 
output$coolplot <- renderPlot({ 
filtered <- 
    bcl %>% 
    filter(count == input$countInput, 
     job_category == input$jobInput, 
     company == input$companyInput 
) 
ggplot(filtered, aes(race)) + 
    geom_histogram() 
}) 
} 

shinyApp(ui = ui, server = server) 

Und hier ist das Ergebnis:

enter image description here

+0

Anstatt ein Bild der Daten zu posten, benutzen Sie bitte die Funktion 'dput' in R. Veröffentlichen Sie die Daten in Ihrer Frage. Eine Teilmenge der Daten ist normalerweise in Ordnung. – jsb

+0

Schreiben Sie "? Dput" in der R-Konsole, um die Hilfeseiten zu öffnen. – jsb

+0

Fügen Sie die Ausgabe von 'dput' in Ihre Frage ein. Posten Sie niemals Daten als Bilder, da sie nicht kopiert werden können. Bitte entferne sie und benutze 'dput'. – jsb

Antwort

0

Try this:

library(shiny) 
library(ggplot2) 
library(dplyr) 

bcl <- read.csv(file = "reveal.csv", colClasses = c("character", "integer", "factor", "factor", "factor", "integer"), na.strings = c("na", "NA")) %>% na.omit() 

ui <- fluidPage(titlePanel("Silicon valley"), 
       sidebarLayout(
        sidebarPanel(
        sliderInput("countInput", "count", 0, 100, c(0, 100)), 
        radioButtons(
         "jobInput", 
         "Job category", 
         choices = c(
         "Technicians", 
         "Professionals", 
         "Sales workers", 
         "Administrative support" 
        ), 
         selected = "Technicians" 
        ), 
        selectInput("companyInput", "company", 
           choices = c("Twitter", "Uber", "View")) 
       ), 
        mainPanel(plotOutput("coolplot"), 
          br(), br(), 
          tableOutput("results")) 
       )) 

server <- function(input, output) { 
    output$coolplot <- renderPlot({ 
    filtered <- 
     bcl %>% 
     filter(
     count == input$countInput, 
     job_category == input$jobInput, 
     company == input$companyInput 
    ) 
    ggplot(filtered, aes(race)) + 
     geom_bar() 
    }) 
} 

shinyApp(ui = ui, server = server) 

Ich habe geom_histogram-geom_bar geändert, da es eine bessere Option für Ihre Daten. Lass mich wissen was du denkst.

+0

hinzugefügt danke, es funktioniert, aber es scheint, dass ich den Code ein wenig ändern sollte, weil es nicht richtig funktioniert, wenn ich Unternehmen ändere oder Jobkategorie ändern – Viola

+0

Genau, gibt es ein paar Dinge, um weiter zu arbeiten :-) Keep coding! – jsb

Verwandte Themen