R 闪亮-将NULL返回到plotOutput时出现黑色框
在下面的示例中,我得到了一个黑色的填充框,当我第一次运行源代码时,该框中的绘图应该是空的,而不是空的 我什么也没说,因为在单击按钮之前,表不会(正确地)显示。我预计绘图也会有同样的行为,即在单击按钮之前,屏幕上显示的都是按钮。我做错了什么R 闪亮-将NULL返回到plotOutput时出现黑色框,r,shiny,R,Shiny,在下面的示例中,我得到了一个黑色的填充框,当我第一次运行源代码时,该框中的绘图应该是空的,而不是空的 我什么也没说,因为在单击按钮之前,表不会(正确地)显示。我预计绘图也会有同样的行为,即在单击按钮之前,屏幕上显示的都是按钮。我做错了什么 library(shiny) myUI = bootstrapPage( actionButton(inputId="gobutton", label="Go"), plotOutput("plot"), tableOutput("table"
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
))
我认为这与开罗一揽子计划有关 我的系统没有安装Cairo。如果我在Firefox中使用新的R会话运行您的代码,则不会出现黑框(只有GO按钮) 然后我安装并加载Cairo。当我重新运行你的代码时,我得到了黑盒 然后我卸载Cairo
detach(“package:Cairo”,unload=T)
:仍然得到黑盒
然后我重新启动R并运行您的代码:仍然是黑盒
然后我安装Cairoremove.packages(“Cairo”)
并重新启动R:no黑盒
因此,如果安装的话,Shiny会加载Cairo,这就是黑匣子的原因。FWIW当我在新的R会话中使用Firefox运行代码时,它对我有效(最初没有黑匣子,只有GO按钮)。我的
sessionInfo()
与您的相同,只是:Platform:x86_64-w64-mingw32/x64(64位)
并且我没有加载Cairo。也许我的Cairo出现了一些奇怪的情况,因为我无法准确地重现您的步骤detach
引发错误,但unloadNamespace
未卸载。我还是像你一样拿到了黑匣子。更有趣的是,也许有一个线索是,在卸载Cairo之后,我没有收到任何黑框,而是收到pngfun中的错误消息警告(filename=filename,width=width,height=height,res=res,:在.External2(C_X11,paste(“png:”,filename,sep=“”)中没有png支持,g$width,:无法启动设备PNG
CanplotOutput()
使用不同的设备?该错误消息导致我在很长一段时间内无所事事,因此我安装了所有可以使用的libpng、libtiff、libjpg+dev软件包。现在可以确认您的结果了-卸载Cairo将删除邪恶的黑框。我可能真的想要或需要Cairo软件包的原因是什么?抱歉,我不知道哦。我已经很久没有使用它了-直到我在您的sessionnInfo()
中看到它之前,我从来没有听说过它。有一种更简单的方法可以在不卸载它的情况下禁用Cairo。在服务器代码中使用选项(shinny.usecao=FALSE)
。
> 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