Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在使ggvis::export_png()正常工作 目标_R_Node.js_Knitr_Ggvis_Vega - Fatal编程技术网

正在使ggvis::export_png()正常工作 目标

正在使ggvis::export_png()正常工作 目标,r,node.js,knitr,ggvis,vega,R,Node.js,Knitr,Ggvis,Vega,将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 modu

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)

为了让ggvis和导出工具正常工作,需要固定一些移动目标

Vega 2+系列版本不接受为用于导出的vg2XXX命令生成的json ggvis,因此Vega需要固定到v1.5.4,这是v1系列的最后一个版本。问题是nodejs4.x+无法安装vega@1.5.4并且需要更新的vega版本。谢天谢地,我们可以使用(nvm)将节点版本固定到节点0.12.7,这允许我们安装vega

多美的皮塔,是吗?如果在可编写脚本的容器(如容器)环境中执行此操作,则会容易得多。我一直在使用Rstudio设置,其中包括包含这些相关行的dockerfile

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/*

... 至少有人知道问题出在哪里吗?例如,在我安装的
vega
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/*