获取ggvis :: export_png()工作

目标

ggvis图导出为PNG文件(包含在.Rmd文档中)。

问题

我对Node.js一无所知,除了它是伟大的,我应该知道更多。

我甚至可以:

 library(ggvis) mtcars %>% ggvis(~mpg, ~wt) %>% export_png() Writing to file plot.png Guessing layer_points() module.js:340 throw err; ^ Error: Cannot find module 'd3' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/usr/local/src/vega/index.js:11:6) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) 

build立

平台

  • OS X小牛(10.9.5)
  • RStudio(0.98.945)
  • 使用devtools::install_github("hadley/ggvis")来安装ggvis (0.3.0.9001)和dependencies
  • https://github.com/trifacta/vega克隆到/usr/local/src/vega
  • symlinked ./bin/vg2png -> /usr/local/src/vega/bin/vg2png

sessionInfo()

 sessionInfo() R version 3.1.0 (2014-04-10) Platform: x86_64-apple-darwin13.1.0 (64-bit) locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] graphics grDevices utils datasets stats methods base other attached packages: [1] knitr_1.6 pander_0.3.8 ggvis_0.3.0.9001 lubridate_1.3.3 dplyr_0.2.0.9001 plyr_1.8.1 stringr_0.6.2 ggplot2_1.0.0 devtools_1.5 loaded via a namespace (and not attached): [1] assertthat_0.1 bitops_1.0-6 caTools_1.17 colorspace_1.2-4 DBI_0.3.0 digest_0.6.4 evaluate_0.5.5 formatR_0.10 grid_3.1.0 [10] gtable_0.1.2 htmltools_0.2.4 httpuv_1.3.0 httr_0.5.0.9000 jsonlite_0.9.11 lazyeval_0.1.1 magrittr_1.0.1 MASS_7.3-33 memoise_0.2.1 [19] munsell_0.4.2 parallel_3.1.0 proto_0.3-10 Rcpp_0.11.2 RCurl_1.95-4.3 reshape2_1.4 RJSONIO_1.3-0 scales_0.2.4 shiny_0.10.1 [28] tools_3.1.0 whisker_0.3-2 xtable_1.7-3 

有几个移动目标需要固定,以获得ggvis和export_工具的工作。

Vega 2+系列版本不接受用于导出的vg2XXX命令生成的json ggvis,所以vega需要被固定到V1.5.4这是v1系列的最后一个版本。 这个问题是nodejs 4.x +不会安装vega@1.5.4并且需要更新的vega版本。 值得庆幸的是,我们可以使用节点版本pipe理器 (nvm)将节点版本固定到节点0.12.7,这允许我们安装vega。

什么是皮塔,是的? 如果你在一个脚本容器(比如在一个摇杆容器)的环境中这样做,它会容易得多。 我一直在使用包含这些相关行的dockerfile的Rstudio设置…

 RUN \ # Vega 2 doesn't accept the json ggvis generates when trying to use vg2XXX # commands so vega needs to be pinned. nodejs 4.x wont install vega@1.5.4... mkdir .local/lib/nvm; \ ln -s .local/lib/nvm .nvm; \ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash; \ . .nvm/nvm.sh; \ sudo bash -c ". .nvm/nvm.sh;\ nvm install 0.12.7;\ nvm alias default 0.12.7;\ npm install --silent vega@1.5.4;"; \ ln -s -t ~/.local/bin ~/node_modules/vega/bin/* 
Interesting Posts