如何在没有空白区域的sidebarPanel中显示绘图?

时间:2016-01-20 13:44:16

标签: r plot ggplot2 shiny

我有两个问题需要解决。首先,模型没有运行我不知道为什么?

完成!由Vongo和NicE完成。第一个问题是:我有两个地点,他们的销售数量显示为情节。我想根据ggtitle(“分析输入$ location”)等选择输入更改情节标题。

其次,我想在sidebarPanel中显示情节 - 在执行按钮下面。然而,在练习中我有一个白色的空白区域,已经预订了要生产的地块。在执行情节之前,我不想在sidebarPanel中预定这个区域。

enter image description here

ui.r

library(shiny)
shinyUI(pageWithSidebar(
headerPanel("Sidebar Study"),
sidebarPanel(

selectInput(inputId = "location",label = "Choose Location",
            choices = c('Los Angeles', 'New York', selected = "Los Angeles"),

actionButton("execute","Execute")
plotOutput("plot"))),
  mainPanel( )))


server.r

library(shiny)

shinyServer(function(input, output,session) {

  output$plot <- renderPlot({
  if(input$execute){
  if(input$location="New York"){
  tmp <- data.frame(time = 1:100, sales = round(runif(100, 150, 879)) )
  }
  if(input$location="Los Angeles"){
    tmp <- data.frame(time = 1:100, sales = round(runif(100, 90, 512)) ) }
  y<-ggplot(as.data.frame(tmp), aes(time)) +  geom_line(size=1,aes(y=sales, colour = "sales"))+ ggtitle(paste("Analyze of", input$location))
  y
}})
})

1 个答案:

答案 0 :(得分:2)

当用户点击按钮时,您可以使用renderUiuiOutput动态添加图表的持有者。在您的ui.R中,尝试将plotOutput("plot")替换为uiOutput("plotDiv")并在服务器中。您可以添加:

output$plotDiv <- renderUI({
    if(input$execute>0){
    plotOutput("plot")
    }
  })

对于情节的标题,你可以这样做:

ggtitle(paste("Analyze of",input$location))

此外,if中的server.R也存在问题,应为input$location=="New York"(添加等号)。你的ui.R中也有括号问题,现在操作按钮和绘图输出都在selectInput中。