有没有其他方法可以将ggvis导出到PNG,而不是export_png()?

时间:2016-08-19 14:21:55

标签: r ggvis

我想知道是否有人知道将ggvis对象导出到PNG的替代方法。可以在Linux或Windows上实现。

由于

1 个答案:

答案 0 :(得分:1)

我找到了几种方法,我发布了一个更直接的方法。

必需的库

library(ggvis)
library(XML)
library(webshot)
library(htmltools)

生成ggvis并打印HTML本地目录

outfile <- mtcars %>% ggvis(~wt, ~mpg) %>% layer_smooths() %>% set_options(width = 1200, height = 800)  %>% view_static() %>% html_print( background = "white", viewer = getOption("viewer", utils::browseURL))

将HTML解析为字符向量

webst <- htmlParse(outfile, asText=FALSE)
showMethods(class=class(webst), where=search())
webst <- as(webst, "character")
class(webst)

使用正则表达式在HTML代码中搜索SVG对象的名称/生成HTML选择器

id <- webst %>% sub(pattern = "-container.*", replacement ="") %>% sub(pattern = ".*plot_", replacement ="") 
selec <- paste0("#plot_", id, " > div > svg")

使用Webshot捕获浏览器的屏幕截图。

webshot(outfile, "test_webshot8.png",  selector = selec)

输出

enter image description here

如果您有建议如何简化或更好的方法将不胜感激。