图表不显示在 Shiny 中

Diagram doesn't show in Shiny

我有一个 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)

结果如下:

试试这个:

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_histogram 更改为 geom_bar,因为它更适合您的数据。让我知道你的想法。