Knitr (R) - как не вставлять изображения в файл HTML?

Это, вероятно, очень просто, но я не могу найти его в документах. Я бы не хотел вставлять сгенерированные изображения в сам файл HTML.

Итак, в основном я хочу, чтобы Knit2html() создавал файл HTML с отдельными файлами изображений (которые затем связаны/отображаются в HTML). Основное поведение заключается в том, что сценарий встраивает изображения в виде строки base64. Проблема в том, что в IE большие изображения не отображаются (т.е. кажутся отсутствующими). Любая идея, как я могу отделить изображения от вывода HTML?

Мой пример файла .Rmd ('knit.Rmd'):

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

И мой файл .R для создания HTML из этого:

library(knitr)

knit2html('knit.Rmd')

В этом примере создается HTML-код с графиком в виде встроенной строки base64.


person Bart    schedule 14.02.2013    source источник
comment
Можете ли вы дать нам краткий пример уценки того, что вы делаете, и перечислить функции R, которые вы вызываете...   -  person Spacedman    schedule 14.02.2013
comment
Я добавил минимальный пример.   -  person Bart    schedule 14.02.2013


Ответы (4)


Если вы посмотрите на страницу справки 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"))

Хотя не проверял...

person juba    schedule 14.02.2013

Вы можете просто добавить self_contained: no к параметрам вывода в заголовке .Rmd. Например:

---
title: "Data visualisation with ggplot"
output:
  html_document:
    self_contained: no
    toc: yes
    toc_float: yes
---
person Lisa DeBruine    schedule 11.08.2017

Это делает не knitr, knitr просто создает модифицированный файл уценки после запуска R фрагментов. Поэтому вам нужно посмотреть справку по пакету markdown, чтобы понять...

Это вариант base64_images. Кофе еще не заработал, поэтому я точно не понял, как установить/сбросить отдельные параметры уценки, но очистка их всех работает для меня:

 > knit2html("foo.Rmd",options="")

производство

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

in foo.html.

Если очистка всех этих параметров нарушает другие функции, прочтите markdownHTMLOptions.

person Spacedman    schedule 14.02.2013
comment
Сначала фрагменты R в файле .Rmd преобразуются в модифицированный файл Knitr .md. Затем отображается в .html, например. render('foo.Rmd'). Интерпретатор R отображает общее имя файла Knitr. r-bloggers.com/r-knitr-markdown-html - person noobninja; 29.10.2016

Вот простой способ иметь рисунки в отдельном html-файле, что значительно уменьшит его размер.

Добавьте этот фрагмент в начало файла *.rmd:

```{r global_options, include=FALSE}
#suppress the warnings and other messages from showing in the knitted file.
knitr::opts_chunk$set(fig.width=8, fig.height=6, fig.path='Figs/',
                      echo=TRUE, warning=FALSE, message=FALSE)
```

Опция «fig.path» указывает R сохранять изображения в папку «Figs». Остальные опции для задачи не требуются.

Нажмите эту кнопку:

Нажмите эту кнопку

Убедитесь, что флажок не установлен:

Убедитесь, что флажок не установлен

person sbond    schedule 14.08.2015