闪亮的应用程序中的多页图

时间:2017-08-29 06:52:57

标签: r plot shiny multipage

我试图在我的闪亮应用中的不同页面上绘制多个图。这是一个可重复的例子:

我的模块代码是:

library(ggplot2)

dfunc <- function(data, page_number) {   p <- ggplot(data = data, aes(x = data[, 3], y = data[, 2])) +
    geom_point()   for (i in 1:page_number) {
    print(p)   } }


dfUI <- function(id) {   ns <- NS(id)
     tagList(titlePanel("Multi plots"),
          sidebarLayout(
            sidebarPanel(
              numericInput(
                ns("page_number"),
                "Number of Plots",
                1,
                min = 1,
                step = 1
              ),
              actionButton(ns("generateplot"), "Generate Plot")
            ),

            mainPanel(plotOutput(ns("view")))
          )) }



df <- function(input, output, session) {   observeEvent(input$generateplot, {
    output$view <- renderPlot({
      data = mtcars

      dfunc(data = data,
            page_number = input$page_number)
    })   })    }

有一个全局文件调用此文件存储这些函数:  通过这个:

library(shiny)
library(shinythemes)
source("modules/dfunc.R")

服务器文件是这样的:

source('global.R')
shinyServer(function(input, output, session) {
  callModule(df, "dfunc")
})

ui.R是这样的:

source('global.R')
shinyUI(fluidPage(


  shinythemes::themeSelector(),

  headerPanel("The Shiny App"),

  tabsetPanel(
    tabPanel("Multi page plot", dfUI('dfunc')),
    type = "pills"
  )

))

现在的问题是,如果我使用我的dfunc函数,它会打印尽可能多的绘图,因为我在page_number中给出了相同的功能,但是当我在闪亮的应用程序中调用类似的功能时,它只打印单个的。闪亮的应用程序是否可以在同一页面或多页上打印所需的多个绘图。

提前致谢。

0 个答案:

没有答案