看不懂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()
})
}
我不明白为什么我的 R 代码会给我这个错误:
data
must be a data frame, or other object coercible byfortify()
, 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()
})
}