2016-08-19 48 views

回答

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

如果您有任何建議如何簡化或一個更好的方法,將不勝感激。

+0

即使您使用knitr將其包含在pdf中,它也能正常工作,儘管您失去了任何交互性。我希望knitr和ggvis很快解決這個問題。我們不想寫一個真正長的代碼來打印圖形。 – skan

+0

看來,只是 outfile <- mtcars %>%ggvis(〜wt,〜mpg)%>%layer_smooths()%>%set_options(width = 480,height = 360)%>%view_static()%>%html_print(background =「白色「,viewer = getOption(」viewer「,utils :: browseURL)) webshot(outfile,」Plot1.png「) works – skan

相關問題