При использовании RMarkdown, есть ли способ вставить изображения (png), связать и сгенерировать и html файл, который я могу отправить по электронной почте и все еще показывать изображения? - PullRequest
0 голосов
/ 14 июля 2020

Отказ от ответственности: Хорошо, я новичок в R, так что я совсем не эксперт. Я потратил 2 часа на поиск следующего, думая, что это будет простой поиск. Но этого не произошло. Я хочу вставить изображения png в файл R Markdown, который я свяжу в файл HTML, чтобы отправить его по электронной почте. Я вижу, что могу включить изображение в кусок и даже увидеть его в выходном HTML файле после вязания без проблем, включив следующий код:

{r pressure, echo=FALSE, fig.cap="A caption", out.width = '50%'}
knitr::include_graphics("OutputMARSParameters.png")

Но, если я не создаю zip-файл со всеми файлами png + файлом html, используемым в файле R Markdown, эти изображения не будут отображаться в html, полученном от меня другим человеком. Есть ли способ сделать это так, чтобы мне не приходилось отправлять по электронной почте все изображения, а только один html файл, в котором каким-то образом были бы все изображения, то есть отправляемый по электронной почте одиночный html со всеми изображениями, отображаемыми в это?

1 Ответ

2 голосов
/ 15 июля 2020

По умолчанию, когда вы связываете файл HTML, он должен был создать отдельный документ, если только вы не добавили self_contained: false в метаданные документа YAML.

Вот простой файл разметки R, который Я создал с настройками по умолчанию:

---
title: "Demo"
author: "A5C1D2H2I1M1N2O1R2T1"
date: "7/14/2020"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## Including External Graphic

```{r pressure, echo=FALSE, fig.cap="A caption", out.width = '50%'}
knitr::include_graphics("html-file-with-code-symbol.png")
```

Note that the `echo = FALSE` parameter was added to the code chunk 
to prevent printing of the R code that generated the plot.

Вы можете увидеть окончательный HTML в этом Gist и увидеть, что это отображается как здесь .

Интересная / соответствующая часть начинается в строке 522 в этом файле. Обратите внимание, что он не обращается к файлу изображения как src, а скорее начинается с <img src="data:image/png;base64,..... Длинная строка текста в .... - это строка base64, представляющая ваше изображение. Фактически, вы можете скопировать текстовое содержимое в теге src и вставить его в преобразователь base64 , чтобы также увидеть изображение.

Если вы хотите убедиться, что вы сделали все правильно, просто попробуйте временно переименовать один из png-файлов, которые вы включили в свой документ. Если он все еще отображается в вашем выводе HTML, вам должно быть хорошо go.

...