Shiny:生成可下载报告时将绘图变量传递给 Rmarkdown 文档
我想知道在使用闪亮生成可下载报告时是否可以将绘图对象传递到 Rmarkdown 文档?
例如,我有一个 P2
plotly 对象,我想将它传递给 Rmarkdown 文档。
我知道我可以将代码放入 Rmarkdown 并生成绘图,但我不在这里这样做
output$Plot <- plotly::renderPlotly({
p <- ggplot(data=iris, aes(x = Sepal.Length, y = Sepal.Width)) +
geom_point(aes(color=Species, shape=Species)) +
labs(title = "Iris sepal width vs length")
P2 <- ggplotly(p)
})
如何在 downloadHandler()
中传递它?
output$report <- downloadHandler(
params <- list(myPlot = p2)
)
I am wondering if it is possible to pass a plot object to Rmarkdown document when generating a downloadable report using shiny?
For instance,I have a P2
plotly object, I want to pass it to Rmarkdown document.
I know I can put the code in Rmarkdown and generate the plot, but I don't to do it here
output$Plot <- plotly::renderPlotly({
p <- ggplot(data=iris, aes(x = Sepal.Length, y = Sepal.Width)) +
geom_point(aes(color=Species, shape=Species)) +
labs(title = "Iris sepal width vs length")
P2 <- ggplotly(p)
})
How can I pass it in downloadHandler()
?
output$report <- downloadHandler(
params <- list(myPlot = p2)
)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
reactiveVal 中,以将其传递给
output
和downloadHandler
:您可以将生成的绘图对象包装在
reactive
或方法是使用
htmlwidgets::saveWidget
(如果您只需要 html 图):You can wrap the resulting plotly object in
reactive
orreactiveVal
to pass it to theoutput
and thedownloadHandler
:Another approach is using
htmlwidgets::saveWidget
(If you only need the html plot):拥有文件
doc.Rmd
:让我们在同一目录中
和另一个文件
app.R
:然后您可以在单击按钮后下载报告。Lets have files
doc.Rmd
:And another file
app.R
in the same directory:Then you can downlaod the report after clicking the button.