如何在新引擎中包含图块

时间:2018-10-31 18:57:10

标签: r knitr

我正在为knitr编写一个新引擎。该引擎可以根据输入生成作为ggplot对象(列表)或存储在文件(.png)中的图。我正在尝试将图像输出到knitr生成的html(pdf,md)文件中,但找不到方法。

我尝试过:

  • include_graphics()以及文件路径
  • engine_output()函数中返回ggplot对象
  • knit_print()有很多选择

什么都没有!

这是引擎的代码。它是GraalVM(Galaaz)上Ruby的引擎。调用GalaazUtil.exec_ruby将在knitr的同一R进程上执行Ruby代码,并在out中返回执行的输出。

生成图时,没有输出... knitr 如何识别在R块中生成了图?

现在假设我可以访问文件中生成的图像,那么如何在knitr html页面中显示该图像?

eng_ruby = function(options) {
  block_code = paste(options$code, collapse = "\\n");
  code = paste0("GalaazUtil.exec_ruby(", 
                   shQuote(block_code), 
                  ")
                ");
  out = eval.polyglot("ruby", code);
  engine_output(options, block_code, out)
}

谢谢!

1 个答案:

答案 0 :(得分:1)

请参阅帮助页面pasv_enable=YES pasv_min_port=1024 pasv_max_port=1048 port_enable=YES pasv_address=xxx.xxx.xxx.xxx 上的“详细信息”部分。您可以使用?knitr::engine_output。这是一个玩具示例(包括R徽标):

knitr::include_graphics()