6

ゴール

Figure を PNG ファイルとしてエクスポートしggvisます (.Rmd ドキュメントに含めるため)。

問題

私は Node.js について本質的に何も知りませんが、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)

設定

プラットホーム

  • OS X マーベリックス (10.9.5)
  • RStudio (0.98.945)
  • (0.3.0.9001) と依存関係のdevtools::install_github("hadley/ggvis")インストールに使用ggvis
  • クローンhttps://github.com/trifacta/vega/usr/local/src/vega
  • シンボリックリンク./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    
4

1 に答える 1

0

ggvis と export_tools を機能させるために固定する必要があるいくつかの移動ターゲットがあります。

Vega 2+ シリーズのリリースは、エクスポートに使用される vg2XXX コマンド用に ggvis が生成する json を受け入れないため、vega は v1 シリーズの最後の v1.5.4 に固定する必要があります。それに関する問題は、nodejs 4.x+ が vega@1.5.4 をインストールせず、新しい vega バージョンが必要なことです。ありがたいことに、ノード バージョン マネージャー(nvm) を使用して、ノード バージョンをノード 0.12.7 に固定することができます。これにより、vega をインストールできます。

なんというPITAでしょう?スクリプト可能なコンテナー (ロッカーコンテナーなど) 内でこれを行うと、はるかに簡単になります。これらの関連行を含むこの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/*
于 2016-11-29T18:18:04.760 に答える