首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OpenCPU和多页绘图

OpenCPU和多页绘图
EN

Stack Overflow用户
提问于 2014-04-02 16:43:08
回答 1查看 356关注 0票数 1

我正试着从一个函数中获取一个多图pdf。在R中,这给了我一个三页PDF:

代码语言:javascript
运行
复制
pdf(file='test.pdf', onefile=TRUE)
lapply(1:3, 'plot')
dev.off()

使用OpenCPU:

代码语言:javascript
运行
复制
$ curl http://localhost:6977/ocpu/library/base/R/lapply -H 'Content-Type: application/json' -d '{"X":[1,2,3], "FUN":"plot"}'
/ocpu/tmp/x0dc3dad0/R/.val
/ocpu/tmp/x0dc3dad0/graphics/1
/ocpu/tmp/x0dc3dad0/graphics/2
/ocpu/tmp/x0dc3dad0/graphics/3
/ocpu/tmp/x0dc3dad0/stdout
/ocpu/tmp/x0dc3dad0/source
/ocpu/tmp/x0dc3dad0/console
/ocpu/tmp/x0dc3dad0/info

我可以获得任何单独的页面作为一个单一页PDF文件,但不能作为一个合并文件。

有两种可能的工作--周旋,并非没有问题:

  1. 使用par(mfrow)layout()或类似的机制,尽管这最终会创建一个怪物图像(我正在处理我的代码中的三个以上的图像)。
  2. 使用tempfile,动态创建Rmd文件,在会话中返回文件名(尚未测试),并使用OpenCPU对Rmd文件的处理。不幸的是,这现在使用了LaTeX的几何图形和页面编号(有解决办法)。

还有其他方法可以做到吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-02 19:22:50

问得好。OpenCPU使用evaluate捕获图形,它分别存储每个图形。API本身不支持将多个图形合并到一个文件中。我会亲自在应用程序层(即使用非R工具)进行这种PDF后处理,但是在API中支持这一点可能是有用的。

一些建议:

  • 您的R函数/脚本保存到工作目录(即getwd())的任何文件也可以通过API获得。因此,您可以做的一件事是在R代码中手动创建组合的pdf文件,并将其保存到工作目录中,然后通过opencpu下载。
  • 图形实际上是recordedPlot对象,除了pngpdfsvg之外,还可以检索图形为rdsrda。因此,您可以编写一个R函数,从API下载recordedPlot对象,然后打印它。不确定这在用例中是否有帮助。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22817833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档