R/Shiny 图不显示在浏览器中

Posted

技术标签:

【中文标题】R/Shiny 图不显示在浏览器中【英文标题】:R/Shiny plots do not show in the browser 【发布时间】:2012-12-03 23:04:49 【问题描述】:

我最近开始玩 Shiny。我试图写一些东西来证明中心极限定理。我的代码如下:

ui.R:

#****************************************ui.R file code*****************************

library(shiny)
shinyUI(pageWithSidebar(headerPanel("Central Limit Theorem"),
                        sidebarPanel(selectInput("Distribution", 
                                                 "Distribution:", 
                                                 list("normal", "lognormal")),
                                                 br(),
                                                 sliderInput("sam_size", 
                                                              "Sample size:", 
                                                              min = 5, 
                                                              max = 500, 
                                                              value = 5)
                        ),
                        mainPanel(tabPanel("Plot", plotOutput("plot")))
))

服务器.R:

#****************************************server.R file code**************************
library(shiny)
shinyServer(function(input, output)
        data <- reactive(function()Distribution <- switch(input$Distribution,
                                                           normal = rnorm,
                                                           lognormal = rlnorm,
                                                           rnorm
                                                           )
                                    Distribution(input$sam_size*2000))

        output$plot <- reactive(function()
                            Distribution <- input$Distribution
                            sam_size <- input$sam_size
                            temp <- matrix(data(), ncol=2000)
                            xbars <- colMeans(temp)
                            hist(xbars, main=paste("Sampling Distribution of the Mean Based on a", Distribution,
                         "distribution with n =", sam_size)))
)

当我尝试使用runApp() 运行代码时,我得到了以下结果。如您所见,该图未显示。

奇怪的是,当我回到我的 Rstudio 并按“Esc”退出应用程序时,我的 Rstudio 中显示的绘图如下所示:

我想知道是否有人知道我的代码有什么问题。谢谢!!

【问题讨论】:

【参考方案1】:

您想用reactivePlot(...) 包装绘图函数,而不仅仅是reactive(...)

一般来说,reactive(...) 应该用于服务器中的辅助函数,这些函数将依赖于input 的数据传递给output 函数。但是,实际生成 output 对象的函数应该用专门的反应函数包装,例如 reactiveTextreactivePrintreactiveTablereactivePlot

【讨论】:

以上是关于R/Shiny 图不显示在浏览器中的主要内容,如果未能解决你的问题,请参考以下文章

在 R Shiny 中显示/隐藏整个盒子元素

输出表未显示在 R Shiny 应用程序中

让日文字符在 R Shiny 中显示

如何使用操作按钮在 R Shiny 中显示和隐藏表格输出?

基于选项卡面板选择在 R Shiny 中显示/隐藏 selectinput

缩略图不显示