看不懂ggplot直方图

Can not understand the ggplot histogram

我不明白为什么我的 R 代码会给我这个错误:

data must be a data frame, or other object coercible by fortify(), not a numeric vector.

library(shiny)
library(ggplot2)

ui <- fluidPage(   sliderInput(inputId = "num", 
           label = "Choose a number", 
           value = 25, min = 1, max = 100),   plotOutput("ggplot") )

server <- function(input, output) {   output$ggplot <- renderPlot({
 ggplot(data=rnorm(input$num), aes(input$num)) + geom_histogram()   }) }

shinyApp(ui = ui, server = server)

ggplot 的第一个参数应该是一个数据框。您提供了 rnorm() 的输出,它是一个向量。这是第一个问题。

第二个是 aes() 应该引用提供的数据框中的列名。

我会先使用 input$num 创建一个数据框。像这样:

server <- function(input, output) {

  data_df <- data.frame(x = rnorm(as.numeric(input$num)))
  output$ggplot <- renderPlot({
    ggplot(data = data_df, aes(x = x)) + geom_histogram()

  })
}