knitr(R) - 如何在HTML文件中嵌入图像?

时间:2013-02-14 08:27:15

标签: r markdown knitr

这可能很容易,但我似乎无法在docs中找到它。我不想将生成的图像嵌入HTML文件中。

所以基本上我希望knit2html()生成一个带有单独图像文件的HTML文件(然后链接到/显示在HTML中)。基本行为是脚本将图像嵌入为base64字符串。这个问题是在IE中,大图像不会显示(即看起来丢失)。知道如何从HTML输出中分离图像吗?

我的例子.Rmd文件('knit.Rmd'):

```{r}
plot(3)
```

我的.R文件用于生成HTML:

library(knitr)

knit2html('knit.Rmd')

此示例生成一个HTML,其中绘图为嵌入式base64字符串。

3 个答案:

答案 0 :(得分:17)

如果查看knit2html帮助页面,您会看到:

This is a convenience function to knit the input markdown source and
call ‘markdownToHTML()’ in the ‘markdown’ package to convert the
result to HTML.

然后查看markdownToHTML帮助页面并阅读以下参数:

 options: options that are passed to the renderer.  see
           ‘markdownHTMLOptions’.

所以你看markdownHTMLOptions(还没丢失?)并看到以下选项:

 ‘'base64_images'’ Any local images linked with the ‘'<img>'’ tag
      to the output HTML will automatically be converted to base64
      and included along with output.

使用以下命令,您应该看到系统上的默认选项:

R> markdownHTMLOptions(default=TRUE)
[1] "use_xhtml"      "smartypants"    "base64_images"  "mathjax"       
[5] "highlight_code"

也许您可以尝试用以下方法编织您的降价文件:

knit2html("knit.Rmd", options=c("use_xhtml","smartypants","mathjax","highlight_code"))

虽然没有经过测试......

答案 1 :(得分:10)

执行此操作的knitr不是knitrR只会在运行markdown块后生成修改后的markdown文件。因此,您需要查看base64_images包的帮助以找出...

它是 > knit2html("foo.Rmd",options="") 选项。咖啡还没有踢,所以我还没有确切地说出如何设置/重置个别降价选项,但清除它们对我有用:

 <p><img src="figure/unnamed-chunk-1.png" alt="plot of chunk unnamed-chunk-1"> </p>
制造

foo.html
markdownHTMLOptions中的

如果清除所有这些选项会破坏其他内容,请阅读{{1}}。

答案 2 :(得分:9)

您只需将self_contained: no添加到.Rmd标头中的输出选项即可。例如:

---
title: "Data visualisation with ggplot"
output:
  html_document:
    self_contained: no
    toc: yes
    toc_float: yes
---