r - 是否可以在 R 包 visNetwork 中以编程方式将网络列表一一导出到 PNG?
问题描述
我尝试了示例代码,visExport()
并且能够将“导出为 PNG”按钮添加到闪亮的网页。但这需要用户交互才能按下按钮将网络导出为 PNG 图像文件。
我有数百个网络,并希望将它们分别导出为 PNG 文件。其中一些需要定期更新。因此,如果用户无需为每个网络按下“导出为 PNG”按钮,就能够将它们全部导出为 PNG 文件,这在逻辑上会很好。
那么是否可以以编程方式将网络列表一个一个导出到PNG?这就像visSave()
为每个网络一个一个地导出 HTML。
解决方案
简短的回答必须是“是”,但由于您没有给我们任何示例代码,因此不可能给您一个经过测试的解决方案。但是你说你有一百个网络。让我们假设在一个向量networks
中。(对下面的示例代码稍作更改后,列表也可以使用。)您可以使用闪亮按钮导出一个图形。因此,您必须拥有创建单个网络映像的代码。假设在一个函数createImageForNetwork(x)
中,网络在哪里x
。您还需要一个函数来为每个图像创建一个输出文件名。假设它被称为getFilename(x)
. 然后像下面未经测试的代码之类的东西会做你想做的事:
exportNetworkImage <- function(x) {
png(getFilename(x))
createImageForNetwork(x)
dev.off()
}
lapply(1:length(networks), function(x) exportNetworkImage(networks[x]))
如果您想在 Shiny 应用程序中单击一个按钮来执行此操作,那么只需将该代码放入按钮的observeEvent
处理程序中。
推荐阅读
- python - 简单更新类实例
- python - 我如何将我的条件结果放入列表中?
- javascript - How do I apply the same .onclick function to multiple elements?
- ionic-framework - Ionic Virtual Scroll 是否有问题?
- excel - Function that finds maximum value in the selected cells
- r - 读取excel文件时列中的值发生变化
- docker - 使用 .NetCore 的 Docker,我应该使用 SDK 还是运行时映像进行微服务?
- python - 这不是与装饰者的工作方式相反吗?
- html - Create fixed element that has different background color on different background elements?
- sql - 计算具有特定值的记录数并映射到不同的表