闪亮 - 将NULL返回到plotOutput时出现黑框

时间:2014-02-05 15:49:56

标签: r shiny

在下面的MWE中我得到一个黑色填充框,当我第一次运行源时,该图应该是没有任何内容。

我什么也没说,因为在点击按钮之前表格没有(IMO正确)显示。我希望绘图的行为相同,即直到单击按钮,屏幕上的所有内容都是按钮。我究竟做错了什么?

library(shiny)

myUI = bootstrapPage( 
  actionButton(inputId="gobutton", label="Go"),
  plotOutput("plot"),
  tableOutput("table")
  )

mySERVER = function(input, output) {
  output$plot <- renderPlot({ 
    if(input$gobutton==0) {return(NULL)}
    hist(runif(100))
  })
  output$table <- renderTable({ 
    if(input$gobutton==0) {return(NULL)}
    data.frame(x=runif(10), y=seq(1:10))
  })

}

runApp(list(
  ui = myUI,
  server = mySERVER
  ))

我正在使用Firefox和最新的稳定R&amp;光泽

> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-unknown-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_GB.utf8       LC_NUMERIC=C             
 [3] LC_TIME=en_GB.utf8        LC_COLLATE=en_GB.utf8    
 [5] LC_MONETARY=en_GB.utf8    LC_MESSAGES=en_GB.utf8   
 [7] LC_PAPER=en_GB.utf8       LC_NAME=C                
 [9] LC_ADDRESS=C              LC_TELEPHONE=C           
[11] LC_MEASUREMENT=en_GB.utf8 LC_IDENTIFICATION=C      

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] shiny_0.8.0

loaded via a namespace (and not attached):
[1] bitops_1.0-6  Cairo_1.5-5   caTools_1.16  digest_0.6.4  httpuv_1.2.2 
[6] Rcpp_0.11.0   RJSONIO_1.0-3 tools_3.0.2   xtable_1.7-1

1 个答案:

答案 0 :(得分:2)

我认为这与开罗套餐有关。

我的系统没有安装Cairo。如果我在Firefox中使用全新的R会话运行您的代码,则不使用黑盒子(只需使用GO按钮)。

然后我安装并加载Cairo。当我重新运行你的代码时,我得到了黑盒子。

然后我卸载开罗detach("package:Cairo", unload=T):仍然得到黑盒子。

然后我重新启动R并运行你的代码:仍然是黑盒子。

然后 ininstall Cairo remove.packages("Cairo")并重启R: no black box

所以看起来Shiny会加载Cairo,如果它被安装,那就是导致黑盒子的原因。