Вставить изображение / таблицу в R Markdown


135

Итак, я хочу вставить таблицу И изображение в R Markdown. В обычный текстовый документ я могу просто вставить таблицу (5 строк на 2 столбца), а для изображения просто скопировать и вставить.

  1. Как мне вставить таблицу из 5 строк на 2 столбца (а также ввести в них информацию) (а также настроить таблицу с учетом того, чтобы второй столбец был шире первого)?

  2. Как мне вставить картинку? Насколько я понимаю, я должен сначала сохранить изображение как png, а затем сослаться на него в своем документе. Кроме того, я хочу автоматически настроить изображение в соответствии с отчетом, например, не занимать больше страницы или меньше страницы (есть ли способ настроить размер изображения по своему вкусу)?

  3. Если кто-нибудь знает что-нибудь интересное / форматирование о R Markdown, не могли бы вы также сообщить мне? Я знаю, что это #делает заголовок большим для абзаца и ** **выделяет вещи жирным шрифтом. Но это все, что я знаю!


Я узнал, как добавлять таблицы! Еще интересуюсь фотками ._.
— user3784616 06

Ответы:


154

Некоторые сайты предоставляют разумные шпаргалки или HOWTO для таблиц и изображений. Первые в моем списке:

Изображения очень просты в использовании, но не дают возможности подогнать изображение под размер страницы (см. « Обновление» ниже). Чтобы настроить свойства изображения (размер, разрешение, цвета, границу и т. Д.), Вам понадобится какой-нибудь редактор изображений. Я считаю, что могу делать все, что мне нужно, с помощью ImageMagick , GIMP или InkScape , все бесплатно и с открытым исходным кодом.

Чтобы добавить картинку, используйте:

![Caption for the picture.](/path/to/image.png)

Я знаю, что pandoc поддерживает PNG и JPG, что должно удовлетворить большинство ваших потребностей.

У вас есть контроль над размером изображения, если вы создаете его в R (например, сюжет). Это можно сделать либо непосредственно в команде создания изображения, либо, что еще лучше, с помощью параметров, если вы используете knitr (настоятельно рекомендуется ... проверьте параметры фрагментов , в частности, в разделе «Графики»).

Я настоятельно рекомендую ознакомиться с этими руководствами; markdown очень удобен и имеет множество функций, которые большинство людей не используют на регулярной основе, но им очень нравится, когда они его изучат. (SO - не обязательно лучшее место, чтобы задавать вопросы, ответы на которые прямо даются в этих руководствах.)


Обновление, 31 августа 2019 г.

Некоторое время назад pandocдля изображений были добавлены атрибуты link_attributes (очевидно, в 2015 году с фиксацией jgm / pandoc # 244cd56 ). «Изменение размера изображения» можно сделать напрямую. Например:

![unchanged image](foo.jpg)
![much-smaller image](foo.jpg){#id .class width=30 height=20px}
![half-size image](foo.jpg){#id .class width=50% height=50%}

Размеры могут быть обеспечены без единиц измерения (пиксели предполагается), или с помощью « , , , и »pxcmmmininch% (Ref: https://pandoc.org/MANUAL.html , поиска link_attributes).

(Я не уверен, что CommonMark реализовал это, хотя обсуждение было продолжительным .)


Если вы все еще это читаете, по поводу картинки. Могу ли я снова открыть файл Rmarkdown на другом компьютере без изображения? Будет ли изображение постоянным после добавления его в R? Если не как сделать его постоянным
— user3784616 06

3
Файл не является постоянным в .Rmdфайле. Если вы "скомпилируете" его (используя pandoc) в HTML, добавление закодирует --self-containedизображение в файл html. Файлы PDF и Word будут иметь его как часть файла, поэтому вам не нужно будет включать фактический файл PNG при его отправке. Однако файлы Rmd требовали включения файла изображения вручную.
— r2evans 06

как это работает..? Кажется, я даже не могу добавить картинку ... Так что в основном картина называется «Уровень занятости» и находится в папке с файлами под названием «Сводка». Расположение файла: C: \ Users \ Paul \ Desktop \ Summary. Итак, код, который я написал, - это! [Уровень занятости.] (C: /Users/Paul/Desktop.Summary.png), и он не работает
— user3784616

можете ли вы привести мне пример того, как использовать --самостоятельный? Итак, когда я сохраню его как документ Word, изображение будет постоянно? Я все еще немного запутался
— user3784616 06

А еще лучше использовать его в заголовке YAML Rmd (и, по-видимому, по умолчанию). Вот ссылка: rmarkdown на rstudio . Более 1/3 части ниже - это раздел «Зависимости документов», в котором рассматривается его использование.
— r2evans 06

88

Обновление : после ответа от @ r2evans намного проще вставлять изображения в R Markdown и контролировать размер изображения.

Изображений

Bookdown книга делает большую работу, объясняя , что лучший способ , чтобы включить изображения является использование include_graphics(). Например, изображение в полную ширину можно напечатать с подписью ниже:

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

Причина, по которой этот метод лучше, чем подход pandoc ![your image](path/to/image) :

  • Он автоматически изменяет команду в зависимости от формата вывода (HTML / PDF / Word)
  • Тот же синтаксис можно использовать для размера графика ( fig.width), ширины вывода в отчете ( out.width), добавления подписей ( fig.cap) и т. Д.
  • Для вывода используются лучшие графические устройства. Это означает, что изображения PDF остаются в высоком разрешении.

таблицы

knitr::kable()- лучший способ включить таблицы в отчет R Markdown, как подробно описано здесь . Опять же, эта функция интеллектуальна в автоматическом выборе правильного форматирования для выбранного вывода.

```{r table}
knitr::kable(mtcars[1:5,, 1:5], caption = "A table caption")
```

Если вы хотите создавать свои собственные простые таблицы в R Markdown и используете R Studio, вы можете ознакомиться с insert_table пакетом . Он предоставляет удобный графический интерфейс для создания таблиц.

Достижение индивидуального стиля ширины столбца таблицы выходит за рамки возможностей knitr, но kableExtraпакет был написан для этого: https://cran.r-project.org/web/packages/kableExtra/index.html

Советы по стилю

Шпаргалка R Markdown еще лучшее место , чтобы узнать о наиболее базовый синтаксис , который вы можете использовать.

Если вы ищете возможные расширения форматирования, этот bookdownпакет также стоит изучить. Он предоставляет возможность делать перекрестные ссылки, создавать специальные заголовки и многое другое: https://bookdown.org/yihui/bookdown/markdown-extensions-by-bookdown.html


Отличное решение!
— Маркус Нуньес

Вы знаете, как зафиксировать местоположение изображения на месте? Сейчас очень сложно предсказать, где он появится, когда я его скомпилирую.
— wolfsatthedoor 01

1
Я боролся с ![image caption](\path\to\image.png)попыткой вставить изображение в R Markdown, обработанный .docx, но загадочно потерпел неудачу, пока я не увидел ваше knitr::include_graphics()решение сегодня. Спасибо вам большое!
— elarry 03

5

Когда дело доходит до вставки изображения, предложение r2evans ![Caption for the picture.](/path/to/image.png)может быть проблематичным, если требуется вывод PDF.

Функция knitr include_graphics knitr::include_graphics('/path/to/image.png') - это более переносимая альтернатива, которая будет генерировать от вашего имени уценку, наиболее соответствующую формату вывода, который вы создаете.


Любопытно ... почему ![caption](path/to/image.png)проблематично использовать PDF, если требуется вывод? Возможно, этот ответ устарел (как и мой первоначальный ответ), но я использовал его в выводе PDF как минимум пару лет.
— r2evans

4

В марте я сделал презентацию колоды в slidify, Rmarkdown с Impress.js, который представляет собой крутой трехмерный фреймворк. мой index.Rmdзаголовок выглядит как

---
title       : French TER (regional train) monthly regularity
subtitle    : since January 2013
author      : brigasnuncamais
job         : Business Intelligence / Data Scientist consultant
framework   : impressjs     # {io2012, html5slides, shower, dzslides, ...}
highlighter : highlight.js  # {highlight.js, prettify, highlight}
hitheme     : tomorrow      # 
widgets     : []            # {mathjax, quiz, bootstrap}
mode        : selfcontained # {standalone, draft}
knit        : slidify::knit2slides

подкаталоги:

/assets /css    /impress-demo.css
        /fig    /unnamed-chunk-1-1.png (generated by included R code)
        /img    /SS850452.png (my image used as background)
        /js     /impress.js
        /layouts/custbg.html # content:--- layout: slide --- {{{ slide.html }}}
        /libraries  /frameworks /impressjs
                                /io2012
                    /highlighters   /highlight.js
                                    /impress.js
index.Rmd

слайд с изображением в фрагменте кода фона будет в моем .Rmd:

<div id="bg">
  <img src="assets/img/SS850452.png" alt="">
</div>  

Некоторые проблемы возникли с тех пор, как я последний раз работал над ним (фотографии больше не в фоновом режиме, текст слишком велик на моем графике R), но он отлично работает на моем локальном. Проблемы возникают, когда я запускаю его на RPubs.


2
Если у вас есть новый вопрос, задайте его, нажав кнопку « Задать вопрос» . Включите ссылку на этот вопрос, если она помогает понять контекст.
— Jaap

8
это был не вопрос, это был ответ :-)
— brigasnuncamais

2
Первая ссылка не работает.
— daknowles
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.