我试图显示一个简单的条形图,该条形图基于复选框选择的个人来汇总销售数量。
我希望在x轴上看到唯一的日期,在y轴上看到数量。我希望“默认”值显示三个人中每个人的总和。最后,如果有人觉得自己很慷慨,我希望他们能在条形图上堆叠在一起。
尽管毫无疑问,我已经进行了很多搜索,但找不到任何解释该操作方法的内容。
我对于在barplot()函数中放入什么特别困惑。
在此先感谢您的帮助。
ui.R
library(shiny)
fluidPage(
titlePanel("Sales by individual"),
sidebarLayout(
sidebarPanel(
checkboxGroupInput("person", "Person:",
choices=unique(df$person)),
hr(),
helpText("n/a")),
mainPanel(plotOutput("salesPlot"))))
server.R
library(shiny)
date = c('2018-05-15', '2018-05-15', '2018-05-16', '2018-05-16', '2018-05-16', '2018-05-14', '2018-05-14', '2018-05-14')
person = c("Dwight", "Jim", "Dwight", "Pam", "Jim", "Pam", "Jim", "Dwight")
quantity = c(10, 15, 25, 35, 14, 12, 1, 10)
df = data.frame(date, person, quantity)
df$person <- as.character(df$person)
df$date <- as.character(df$date)
df$date <- as.Date(df$date, format="%Y-%m-%d")
function(input, output) {
output$salesPlot <- renderPlot({
barplot(
#Do not understand what to put here
ylab="Number of Sales",
xlab="Date")
})
}
答案 0 :(得分:1)
有一些选择,但是这里有一个:
ui = fluidPage(
titlePanel("Sales by individual"),
sidebarLayout(
sidebarPanel(
checkboxGroupInput("person", "Person:",
choices=unique(df$person), selected = unique(df$person)),
hr(),
helpText("n/a")),
mainPanel(plotOutput("salesPlot"))))
server = function(input, output) {
dataplot <- eventReactive(input$person, {
df <- df %>% filter(as.factor(person) %in% c(input$person))
})
output$salesPlot <- renderPlot({
ggplot(data = dataplot(), aes(x = date, y = quantity, fill = person)) + geom_col(position = position_stack()) + theme_bw() + xlab("Date") + ylab("Number of Sales")
})
}
shinyApp(ui, server)