在R应用程序中呈现存储在列表中的多个绘图

在R应用程序中呈现存储在列表中的多个绘图,r,shiny,R,Shiny,我想通过Shining应用程序渲染Plotlist中存储的条形图。我是Shiny的新手,需要帮助。守则: o<-list() for(i in 1:10){ Z3<-seq(1+i,10+i,1) o<-append(o,list(Z3)) } Plotlist <- vector(mode = "list", 10) for(i in 1:10){ s<-barplot(o[[i]],names.arg = paste("

我想通过Shining应用程序渲染Plotlist中存储的条形图。我是Shiny的新手,需要帮助。守则:

o<-list()
for(i in 1:10){
  Z3<-seq(1+i,10+i,1)
  o<-append(o,list(Z3))
}

Plotlist <- vector(mode = "list", 10)
for(i in 1:10){
  s<-barplot(o[[i]],names.arg = paste("A",1:10,sep = "_"),main=paste("Plot",i)) 
  Plotlist[[i]]<-recordPlot()
}

library(shiny)

ui<-fluidPage(titlePanel("Plots in a list"),
              sidebarPanel(selectInput("plot", "Choose Plot:", choices=paste("Plot",1:10)),hr(),helpText("Trial Plots"),
                           mainPanel(plotOutput("BARPLOT"))))  
server<-function(input, output) {
  output$BARPLOT<-renderPlot(for(i in 1:10){Plotlist[[i]]})
}

shinyApp(ui,server) 

为了打印指定的绘图,您需要在renderplot内访问selectinput的选定值,这是通过添加{i完成的。找到了一个解决方案,谢谢Abdesabour Mtk

choices = 1:10

names(choices) <- paste("Plot",1:10)
shinyApp(
  ui = fluidPage(
    titlePanel("Plots in a list"),
    sidebarPanel(
      selectInput("plot", "Choose plot:", choices=choices),
      hr(),
      helpText("Trail plots")),
    plotOutput("barplot")
  ),
  server = function(input, output) {
    output$barplot<-renderPlot({
      i<- as.integer(input$plot)
      Plotlist[[i]]
    })
  }
)
 

您可以将数据保存到列表中,然后生成绘图