让 ggvis::export_png() 工作

2023-11-27

Goal

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

Problem

我对 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)

Setup

Platform

  • OS X 小牛 (10.9.5)
  • RStudio (0.98.945)
  • Used devtools::install_github("hadley/ggvis")安装ggvis(0.3.0.9001) 和依赖项
  • Cloned https://github.com/trifacta/vega to /usr/local/src/vega
  • 符号链接./bin/vg2png -> /usr/local/src/vega/bin/vg2png

会话信息()

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+ 系列版本不接受 ggvis 为 vg2XXX 命令生成的 json,这些命令用于导出,因此 vega 需要固定到 v1.5.4,这是 v1 系列的最后一个。问题是 Nodejs 4.x+ 无法安装[电子邮件受保护]并需要较新的 Vega 版本。值得庆幸的是我们可以使用节点版本管理器(nvm) 将节点版本固定到节点 0.12.7,这允许我们安装 vega。

多棒的皮塔饼啊,是吗?如果您在可编写脚本的容器中执行此操作(例如使用Rocker容器)环境要容易得多。我一直在使用 Rstudio 设置,其中包括thisdockerfile 包含这些相关行...

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 [email protected]...
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 [email protected];"; \
ln -s -t ~/.local/bin ~/node_modules/vega/bin/*
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让 ggvis::export_png() 工作 的相关文章

  • 动态更改温斯顿的日志级别

    我尝试在运行时实现日志级别更改 我一直在关注https github com yannvr Winston dynamic loglevel blob master test https github com yannvr Winston
  • 在 R 中使用逻辑 grep 抓取文本

    下午好 谢谢你帮我解答这个问题 我有兴趣抓取一组超过 5000 个 URL 的列表 我使用 lapply 和 readLines 使用下面的示例代码提取这些网页的文本 multipleURL lt c http dailymed nlm n
  • R data.table fwrite 到 fread 空间分隔符并清空

    我在使用 fread 以 作为分隔符和散布的空白值时遇到问题 例如 这个 dt lt data table 1 5 1 5 1 5 make a simple table dt 3 V2 NA add a blank in the midd
  • 如何使用 AMQP 以“PeekLock”模式从 Azure 服务总线队列获取消息?

    我们正在尝试在 Node 应用程序中使用 Azure 服务总线 我们的要求是从队列中获取多条消息 由于Azure SDK for Node不支持批量检索 我们决定使用AMQP 虽然我们能够使用 Peek Messages 获取消息 如此处所
  • R data.table 1.9.2 关于 setkey 的问题

    这似乎是 1 8 10 后引入的一个错误 与包含列表的 DT 的 setkey 相关 运行下面两个代码来查看问题 library data table dtl lt list dtl 1 lt data table scenario 1 p
  • 使用 nw-gyp 构建 node-sqlite3

    我正在尝试为 node webkit 构建 sqlite3 The sqlite3 https www npmjs com package sqlite3 installing页面解释说它需要使用 nw gyp 来完成 据我了解 我应该下载
  • 将随机字节转换为整数范围 - 如何?

    我试图通过读取 crypto randomBytes 来获取一定范围内的随机整数 现在 我的问题是我不知道如何从该字节流中读取整数 我想生成一个范围只是 丢弃 不在范围内的整数的问题 有任何想法吗 您可以从以下位置获取一个 32 位整数cr
  • 使用 Socket.io 向多个房间发送消息?

    是否可以使用socket io向多个房间发送消息 发送至 1 个房间 io sockets in room emit id 发送到N个房间 io sockets in room1 room2 roomN emit id 是的 可以同时发送到
  • 警告:访问循环依赖内模块导出的不存在属性“MongoError”

    我正在使用节点执行 API 并使用 Mongoose 当我给一个yarn dev启动我的 Nodemon Mongo 出现错误 我不知道如何解决这个问题 有人有什么想法吗 我使用的是 MongoDB Atlas 数据库 就在出现以下错误之后
  • 如何绘制每条线之间具有特定距离的图形

    实际上 我尝试绘制一个图形 但它将所有列 线 放在一起并显示 因此它不具有代表性 我尝试制作模拟数据并向您展示我如何绘制它 并向您展示我想要的内容 我不知道如何制作像下面所示的示例的数据 但我在这里做了什么 set seed 1 M lt
  • 未捕获的 ReferenceError:未定义角度 - Mean.IO

    我已遵循安装步骤 http mean io docsmean io 但是当我浏览 localhost 3000 时 我得到一个空白页面 当我打开控制台时 我得到一个指向相同错误的文件列表 未捕获的引用错误 角度未定义 我的问题是类似的to
  • 将消息从 AWS Lambda 发布到 AWS IoT

    我正在尝试使用 Nodejs 将消息从 AWS Lamba 发布到 AWS IoT 我已压缩该项目并上传到 AWS IoT 下面是代码片段 var awsIot require aws iot device sdk var device a
  • R 编程常用工具

    如果已经以不同的方式问过这个问题 我深表歉意 但我找不到任何达到我想要的东西 我真的是从其他软件包 SPSS 开始接触 R 的 当我了解真正可以做什么时 我意识到我还需要其他 工具 这让我想到了我的问题 您有哪些用于开发 R 代码的设置 我
  • 在 igraph 中为社区分配颜色

    我在 igraph 中使用 fastgreedy community 检测算法在 R 中生成社区 代码返回 12 个社区 但是在绘图时很难识别它们 因为它返回的图的颜色数量有限 我怎样才能用十二种不同的颜色绘制这个图表 l2 lt layo
  • 如何防止 gulp-notify 破坏 Windows 中的 gulp-watch?

    我正在使用吞咽通知 https www npmjs org package gulp notify插入 这是我如何在 gulpfile js 中实现它的示例 您可以看到我也在使用 gutil 和 livereload 我不知道它们是否发挥任
  • 更快的 %in% 运算符

    The 快速匹配 https cran r project org web packages fastmatch index html包实现了更快的版本match对于重复匹配 例如在循环中 set seed 1 library fastma
  • 合并数据框而不重复行

    我想合并两个数据框 但如果有多个匹配项 则不想重复行 相反 我想总结一下那天的观察结果 来自 合并 提取两个数据框中与指定列匹配的行并将其连接在一起 如果有多个匹配项 则所有可能的匹配项各贡献一行 这是一些示例代码 days lt as d
  • 当有很多列时,使用 readr::read_csv() 导入数据时覆盖列类型

    我正在尝试使用 R 中的 readr read csv 读取 csv 文件 我导入的 csv 文件大约有 150 列 我只包含示例的前几列 我希望将第二列从默认类型 我执行 read csv 时为日期 覆盖为字符或其他日期格式 GIS Jo
  • Phantom-node模块无法加载外部资源

    我正在开发一个nodejs服务器 它将发布的html呈现为pdf png或jpg https github com svenhornberg pagetox https github com svenhornberg pagetox ser
  • 如何绘制堆积比例图?

    我有一个数据框 x lt data frame id letters 1 3 val0 1 3 val1 4 6 val2 7 9 id val0 val1 val2 1 a 1 4 7 2 b 2 5 8 3 c 3 6 9 我想绘制一个

随机推荐

  • 存储 ENUM 值的 PostgreSQL 数组

    我有一个可以有状态的表 statuses unmoderated nominee finalist winner status db Enum statuses name enum nomination status metadata db
  • 如何使用Web API限制DOS攻击

    我计划使用 MVC4 和 Web APi 开发一个网站 它是一个简单的应用程序 将根据搜索显示客户信息 对于搜索功能 我使用 Ajax get 方法调用 webApi 我知道我应该使用 Post 但考虑这是当前的实现 我的 API 调用是
  • JOIN ON 子句中的 T-SQL Case 语句

    我正在尝试在 a 中构建一个 case if 语句JOIN ON clause LEFT JOIN CTSTRC Statuses ON RIGHT Statuses STRID 3 CTE F61 问题是该列 Statuses STRID
  • PHP dirname 返回符号链接路径

    假设我有一个符号链接 one directory to two directory If I echo dirname dirname FILE 它返回 one directory 最好的退货方式是什么 two directory 用法示例
  • 不使用 nightly 时如何忽略基准测试?

    我有一个包含一些基准测试和测试的文件 想针对稳定版 测试版和夜间版进行测试 然而 要么我不使用基准测试 要么稳定 测试版抱怨 使用 stable beta 时有没有办法隐藏所有基准部分 作为示例 以下代码来自book feature tes
  • 如何在 Windows 上从 pygraphviz 运行 neato

    我正在尝试在 python v 2 7 中使用 pygraphviz 和 networkx 来创建网络映射 我在 stackoverflow 上发现了一个看起来非常有用的脚本 import networkx as nx import num
  • GDB TUI - 输出未对齐

    我在ubuntu上使用gdb 7 7 1 GNU gdb Ubuntu 7 7 1 0ubuntu5 14 04 2 7 7 1 我的终端是 Konsole 2 13 2 我遇到的问题是 当我进入 TUI 模式时 在一两个调试器会话之后 会
  • 设置请求持续时间的全局变量

    我可以为单个请求的长度设置某种全局变量 以便页面的所有控件都可以响应它 而不必将其传递给每个控件吗 例如 如果有人点击我的 MasterPage 上的 保存 按钮 我是否可以设置一些内容 以便我的页面上的每个 UserControl 都可以
  • Future.wait() 不能在没有纤程的情况下等待(在 Meteor.method 中等待另一个 future 时)

    In Meteor 我正在编写一个方法 该方法必须检查某个路径的子目录中是否有新文件 我首先想列出其中的子目录Meteor之后我child process exec一个简单的 bash 脚本 列出自上次执行以来添加的文件 我在使目录发现异步
  • 使用 O 表示法在 for 循环中对 LinkedList 调用 get() 的复杂性

    我有一个 uni 实用程序 可以使用 O 表示法确定一小部分代码的复杂性 代码是 for int i 0 i lt list size i System out println list get i 所讨论的列表是一个链接列表 对于我们的实
  • 如何破译 C 中复杂的指针声明?

    所以我想举个例子 int pi pi is a pointer that points to an integer const int cpi cpi is a pointer that points to a constant integ
  • Excel - 如何转换 UTC 日期时间

    我想在Excel中使用这个字符串作为日期时间 2016 04 06T18 05 32 6550717 03 00 怎样才能转换呢 日期 时间中有两件事引起了问题 第一个是T这表示时间的开始 Excel 使用空格 第二个是右侧的所有内容 如果
  • TestNG 中测试的执行顺序

    如何自定义TestNG中测试的执行顺序 例如 public class Test1 Test public void test1 System out println test1 Test public void test2 System
  • 如果“z”中有“x”和“y”:

    我正在用 python 编写一个问答脚本 它获取 raw input 并将其设置为 theQuestion 我试过if var1 and var2 in theQuestion 但它会查找其中一个字符串 而不是同时查找两个字符串 有没有一种
  • 使用 LongListSelector 连续分页

    当我的 LongListSelector 滚动到底部时 我想自动从 Web 服务加载更多数据 就像商店应用程序一样 我的问题是我找不到任何事件来触发加载更多操作 Microsoft 的建议是使用 LongListSelector ItemR
  • 如何在 Ionic 2 中的选择组件内使用图像

    我正在尝试将图像放入SelectIonic 2 中的组件 我已将图像源文件放入www img我的 Ionic 2 项目中的文件夹 然而 使用一个简单的img tag 使用此代码不显示任何图像
  • goto 可以打破嵌套循环吗?

    JavaScript 支持类似于 goto 的语法来打破嵌套循环 总的来说 这不是一个好主意 但它被认为是可以接受的做法 C 不直接支持break labelName语法 但它确实支持臭名昭著的goto 我相信 C 中可以实现等效的功能 i
  • 如何将 tqdm 与多线程结合使用?

    我试图使用 tqdm 报告从三个链接下载每个文件的进度 我想使用多线程从每个链接同时下载 同时更新进度条 但是当我执行脚本时 有多行进度条 似乎线程正在同时更新 tqdm 进度条 我问我应该如何运行多线程来下载文件 同时保持每次下载的进度条
  • Java - 全名正则表达式

    如何验证全名的正则表达式 我只想要字母 没有数字 和正则表达式的空格 这就是我到目前为止所做的 你能帮我修复正则表达式吗 非常感谢 public static boolean isFullname String str boolean is
  • 让 ggvis::export_png() 工作

    Goal 导出一个ggvis图为 PNG 文件 用于包含在 Rmd 文档中 Problem 我对 Node js 基本上一无所知 除了它很棒而且我应该了解更多 我了解到 library ggvis mtcars gt ggvis mpg w