【发布时间】:2015-08-14 02:22:20
【问题描述】:
现在,我正在使用 R 和 Shiny 创建一个工作流工具,但我有兴趣创建某种功能来“保存”作为数据分析等过程的一部分创建的图表。
代码不是为了方便用户在我在 web 应用程序上的 GUI 中保存他们自己的图形,但 我想知道 R 是否有能力“捕捉”正在呈现的图形,或者也许设备,然后将它们保存到一个向量或设备数组中以供以后提取。最好可以放大或缩小这些图形——我的大多数图形都在 ggplot2 或基本图形包中.
理想的过程如下:
- 我绘制了两个图表,如果我在我正在进行数据分析的模块中调整它们的大小,它们会调整大小。
- 当我完成某个流程后,我将能够将图表保存到某个外部变量中。
- 稍后,当我查看图表时,我可以调整它们的大小和质量。
- 最后,当我满意时,我应该能够下载所有这些(但我确信这已经是可能的——这不是问题的一部分)。
编辑:现在代码中的情节如下所示:
observeEvent(input$outlier_zmedian.graph_density, {
env <- module_env$outlier_zmedian
if(!is.null(env$rval$outlier_rw)) {
withProgress(message='Graphing smooth density plot...', {
env$rval$density <-
ggplot(env$ggdat) + geom_density(aes(color=sample, x = value)) +
xlab("Counts") + ylab("Density") +
ggtitle("Density Plot of Retained Data")
})
} else {
env$rval$density <- NULL
}
})
然后,使用 output$density_plot 回调中的另一个 print() 语句将 env$rval$density 变量打印到屏幕上。
我想知道如何最大限度地减少更改此代码和系统并使其用户可以简单地下载图表或,将图表保存到程序的另一部分,以后可以访问以更改图形属性,例如大小、质量等。
【问题讨论】:
-
您不是在寻找
png()、pdf()或jpeg()之类的东西吗? -
@PauloMiraMor 我正在寻找一种方法将图形保存为对象本身,然后在我不喜欢它们的分辨率时调整它们的大小,然后将它们保存到文件中。问题不在于找到格式,而是如何存储图形,因为它们只是“通过”R 并显示在您的屏幕上,有点像 RStudio 如何“捕获”图形输出并允许您稍后调整大小。跨度>
-
那么,这些函数提供了这些功能,不是吗?至少这是我从你的问题中可以理解的。尝试查看它的文档:
?png. -
@PauloMiraMor 不,我不是在问如何绘制图表。我在问如何“捕获”图形或绘制它们的图形设备,或者如何从某种全局变量等访问这些设备。 关键是要捕获图表的设备/可缩放形式,这样我以后可以重新缩放它们并将它们输出为我想要的格式。
标签: r graphics plot ggplot2 shiny