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


132

Тому я хочу вставити таблицю ТА картинку в R Markdown. У звичайний текстовий документ я просто можу вставити таблицю (5 рядків на 2 стовпчики), а для малюнка просто скопіювати та вставити.

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

  2. Як вставити малюнок? З мого розуміння, я повинен спершу зберегти малюнок як png, а потім посилати його у своєму документі. Крім того, я хочу автоматично налаштувати зображення до звіту, як-от не більше, ніж сторінка, або менше сторінки. (Чи є спосіб, щоб я змінив розмір зображення на свій смак)?

  3. Якщо хтось знає щось круте / форматування про R Markdown, чи можете ви також повідомити мене? Я знаю, що #робить великий заголовок для абзацу, і ** **сміливий. Thats про все, що я знаю, хоча!


Я дізнався, як додати таблиці! Ще дивуюсь картинам ._.
користувач3784616

Відповіді:


152

Кілька сайтів надають обґрунтовані шпаргалки або HOWTO для таблиць і зображень. Топ у моєму списку:

Картинки дуже прості у використанні, але не пропонують можливість налаштувати зображення відповідно до сторінки (див. Оновлення , нижче). Для налаштування властивостей зображення (розмір, роздільна здатність, кольори, рамка тощо) вам знадобиться деяка форма редактора зображень. Я вважаю, що я можу зробити все, що потрібно, за допомогою ImageMagick , GIMP або InkScape , все це безкоштовно та з відкритим кодом.

Щоб додати зображення, використовуйте:

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

Я знаю, що pandoc підтримує PNG та JPG, які повинні відповідати більшості ваших потреб.

У вас є контроль над розміром зображення, якщо ви створюєте його в R (наприклад, графік). Це можна зробити безпосередньо в команді для створення зображення або, ще краще, за допомогою параметрів, якщо ви використовуєте в'язальну машину (настійно рекомендується ... ознайомтеся з параметрами фрагментів , зокрема в розділі Сюжети).

Я настійно рекомендую ознайомитися з цими навчальними посібниками; розмітка дуже зручна і має багато функцій, які більшість людей не використовує регулярно, але дуже подобається, як тільки вони її вивчають. (Отож, це не обов'язково найкраще місце для запитань, на які в цих навчальних посібниках дають відповідь дуже безпосередньо.)


Оновлення, 2019 -31 серпня

Деякий час тому було 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

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

як це працює..? Я навіть не можу додати зображення. Отже, в основному малюнок має назву "Ставки зайнятості" і знаходиться у папці файлів під назвою "Підсумок". Розташування файлу - C: \ Users \ Paul \ Desktop \ Summary. Отже, написаний мною код є: [Ставки зайнятості.] (C: /Users/Paul/Desktop.Summary.png), і він не працює
користувач3784616

чи можете ви надати мені приклад, як користуватися вмістом? Отже, коли я зберігаю його як слово doc, воно буде постійно мати зображення? Я ще трохи розгублений
користувач3784616

Що ще краще, використання його в заголовку YAML Rmd є більш прямим (і, мабуть, за замовчуванням). Ось посилання: rmarkdown у rstudio . Понад 1/3 шляху вниз - це розділ "Залежності документів", який стосується його використання.
r2evans

87

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

Зображення

Книга обліку книг робить велику роботу, пояснюючи, що найкращий спосіб включення зображень - за допомогою використання 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

1
Я вела боротьбу зі ![image caption](\path\to\image.png)спробою вставити зображення в R Markdown, що відображається knitr::include_graphics(). Дуже дякую!
elarry

5

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

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


Цікаво ... навіщо використовувати ![caption](path/to/image.png)проблематично, якщо потрібен вихід PDF? Можливо, ця відповідь застаріла (як це було в моїй оригінальній відповіді), але я використовую це у вихідному документі PDF принаймні пару років.
r2evans

4

У березні я зробив презентацію палуби у слайді, Rmarkdown із зазначенням впечатлення.js, який є крутим 3D-рамкою. мій 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.