我的server.r - >
output$finaltable2 <- renderUI({
if(is.null(input$check)) {return()}
else
tabsetPanel(
tabPanel("Q Bins", renderPlot(replayPlot(qplot), height = 600)),
tabPanel("P Value Histogram", renderPlot(replayPlot(tplot), height = 600)),
tabPanel("Q Value to Use", h3(toString(qaverage)))
)
})
取出replayPlot()
并在renderPlot()
内调用qplot / tplot对象也有效:
output$finaltable2 <- renderUI({
if(is.null(input$check)) {return()}
else
tabsetPanel(
tabPanel("Q Bins", renderPlot(qplot, height = 600)),
tabPanel("P Value Histogram", renderPlot(tplot, height = 600)),
tabPanel("Q Value to Use", h3(toString(qaverage)))
)
})
我的qplot和tplot对象由:
制作plot.new()
par(mfrow=c(3,4))
barplot(df[[1]][[2]])
*etc, etc, etc [adding more subplots to plot]*
qplot <- recordPlot()
也许shinyapps linux服务器不喜欢recordPlot()结构;还有另一种方法可以记录我的绘图数据并在输出$ UI调用中呈现它吗?谢谢!
答案 0 :(得分:4)
所以在阅读link provided by @ginberg之后,我想出了这个答案。希望它能帮助2038年的任何未来读者。
首先,在创建我的recordPlot()对象时,我添加了dev.control(&#34; enable&#34;)和dev.off(),如下所示:
plot.new()
dev.control("enable")
hist(df etc etc etc)
qplot <- recordPlot()
dev.off()
然后在我的server.r文件中,在我的输出$ thing renderUI中,我更改了renderPlot以包含replayPlot()。像这样:
tabPanel("Q Bins", renderPlot(replayPlot(qplot), height = 600)),
然后我将文件上传到shinyapps - 效果很好。感谢ginberg向我展示了录制和重放图表的页面。
[我试图做的其他事情,但没有做得很远:]