2016-08-19 11 views
2

誰かがggvisオブジェクトをPNGにエクスポートする代替方法を知っているのだろうかと思いました。 LinuxまたはWindowsで実装できます。私はいくつかの方法が、私はもっと単純であるものを掲示していたexport_png()ではなくggvisをPNGにエクスポートする方法はありますか?

おかげ

+0

メソッドを見つけることができない場合は、私はスクリーンショットを撮り、それをトリミングします。 –

+1

私の目的は、プログラム的にそれを行うことでした。私はknitrを使ってプロットを文書に埋めたいと思っています。 –

答えて

1

必須ライブラリ

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

ggvisを生成し、検索するために正規表現を使用して文字ベクトル

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

にHTMLの構文解析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コード内の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%>%layer_smooths()%>%set_options(width = 480、height = 360)%>%view_static()%>%html_print(background = "白 "、viewer = getOption(" viewer "、utils :: browseURL)) webshot(outfile、" Plot1.png ") 作品 – skan

関連する問題