2017-12-27 863 views
1

我有一个Shiny应用程序,显示硅谷公司员工的种族和员工数量之间的关系。左侧的工具栏是可见的,但情节未显示。我应该如何更改我的代码?图中不显示闪亮

下面是代码:

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) 

这里是结果:

enter image description here

+0

不要发布数据图片,请使用R.中的'dput'函数发布数据到您的问题中。数据的一个子集通常很好。 – jsb

+0

在R控制台中写入'?dput'以打开帮助页面。 – jsb

+0

在你的问题中粘贴'dput'的输出。切勿将数据发布为图片,因为它无法复制。请删除它们并使用'dput'。 – jsb

回答

0

试试这个:

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) 

我已经改变geom_histogramgeom_bar,因为它是为您的数据提供更好的选择。让我知道你的想法。

+0

谢谢,它的工作原理,但似乎我应该修改一些代码,因为如果我更改公司或更改工作类别,它不能正常工作 – Viola

+0

确切地说,一些事情要继续努力:-)保持编码! – jsb