RMarkdown / Knitr, соответствующий физическому размеру фигуры и отображаемому размеру HTML - PullRequest
0 голосов
/ 05 июля 2018

Я использую RMarkdown для создания HTML-файла (мой предпочтительный формат). Затем я использую пакет Officer для создания PowerPoint (PPT) (предпочтительный формат для всех остальных), который считывает изображения в формате .png, которые автоматически создаются и сохраняются при вязании документа (я полагаю, что это значение по умолчанию, если указан fig.path ).

Чтобы получить согласованный размер шрифта на всех рисунках PPT, я указал в каждом блоке knitr fig.width, out.width и т. Д., Чтобы они были равны соответствующим размерам заполнителя PPT. Например, если заполнитель PPT имеет высоту 5,29 дюйма и ширину 5,89 дюйма, то в блоке knitr я указываю out.height="5.29in", out.width="5.89in", fig.height=5.29, fig.width=5.89). Кажется, что это работает с точки зрения PPT-файла, однако это приводит к очень маленьким цифрам для HTML-файла. Есть ли способ заставить код knitr работать как для html, так и для PPT, без необходимости специально сохранять изображение, используя, например, ggsave ()?

Ниже приводится автоматически сгенерированный тестовый код:

---
title: "Test_Figure_Size"
output: 
  html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(fig.path = "Delete_Me/", echo=FALSE)
```

When you include out.height, out.width the figure is extremely small in the knitted html document, but perfectly sized as a .png file.
```{r pressure, echo=FALSE, out.height="5.29in", out.width="5.89in", fig.height=5.29, fig.width=5.89}
plot(pressure)
```

1 Ответ

0 голосов
/ 06 июля 2018

Когда вы говорите out.height="5.29in", out.width="5.89in", эти значения записываются в вывод HTML как атрибуты height и width img. Но height и width выражены в пикселях, поэтому в итоге вы получите цифру около 5 пикселей в квадрате.

Я не использую Powerpoint, но есть ли способ указать размер изображения в пикселях, например, "589px" или что-то подобное? Тогда он будет использовать тот же масштаб, что и браузер, и все должно быть согласовано.

...