执行我的Shiny App时出现以下问题。 我正在尝试的是在ggplot中绘制一个简单的数据集。首先,geom_point()或geom_line()是否不重要,但输入数据应该是csv数据集,x轴应该按日期范围调整。
我现在的问题是,上传数据后ggplot为空:
,警告信息如下:
Warning: Removed 8399 rows containing missing values (geom_point)
当我用geom_line()替换geom_point()时,它不会出现,但ggplot保持为空。
完整的csv表可以在这里下载:
https://www.dropbox.com/s/xf7qtv7u2rcqdw9/sample_sales.csv?dl=0
ui.R脚本如下:
shinyUI(pageWithSidebar(
headerPanel("My App"),
sidebarPanel(
fileInput('file1', 'Choose CSV File',
accept = c('text/csv', 'text/comma-separated-values,text/plain', '.csv')),
tags$hr(),
checkboxInput('header', 'Header', TRUE),
radioButtons('sep', 'Separator',
c(Comma = ',',
Semicolon = ';',
Tab = '\t'),
'Comma'),
radioButtons('quote', 'Quote',
c(None = '',
'Double Quote' = '"',
'Single Quote' = "'"),
'Double Quote'),
dateRangeInput("daterange", "Date range:",
start = "2009-01-01",
end = "2012-12-30")),
mainPanel(
tabsetPanel(
tabPanel("Sales", plotOutput("sales")),
tabPanel("Category", plotOutput("category")),
tabPanel("Table", tableOutput("contents")))
)
)
)
,server.R脚本如下所示:
library(ggplot2)
library(shiny)
library(lubridate)
shinyServer(function(input, output) {
sales <- reactive({
inFile <- input$file1
if (is.null(inFile))
return(NULL)
read.csv(inFile$datapath, header = input$header, sep = input$sep, quote = input$quote)
})
range <- reactive({
c(input$daterange[1], input$daterange[2])
})
output$contents <- renderTable({
print(head(sales()))
})
output$sales <- renderPlot({
sales.df <- sales()
sales.df$Order.Date <- as.Date(sales.df$Order.Date, "%Y/%m/%d")
sales.df$Profit <- as.numeric(sales.df$Profit)
y.limit = c(min(sales.df$Profit), max(sales.df$Profit))
p <- ggplot(sales.df, aes(x = Order.Date, y = Profit)) + geom_point(size = 400) + scale_x_date(limits = c(input$daterange[1], input$daterange[2]))
print(p)
})
output$category <- renderPlot({
if (is.null(input$file1)) {
return()
}
print(plot(sales()$sales[16]))
})
})
我希望你能提前帮助我