knitr: установка out.height неожиданно не сохраняет соотношение сторон - PullRequest
0 голосов
/ 24 мая 2018

при использовании knitr::include_graphics с опцией out.height='50px' в представлении rmarkdown ioslides соотношение сторон не сохраняется на моей машине.У кого-нибудь есть идеи, как решить эту проблему?

Интересно, что сегодня утром это сработало.Но не после того, как я установил пакеты R ggsn, ggmap, plotKML.Позже я удалил их, но проблема остается.

Я использую: Ubuntu 16.04.4, R версия 3.4.4, текущий rmarkdown

Минимальный пример:

---
title: "Untitled"
author: "Me"
date: "May 24, 2018"
output: ioslides_presentation
---

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

## R Markdown
setting out.height does NOT keep aspect ratio
```{r, out.height='50px', dpi=200}
   knitr::include_graphics("rect_circ.png")
```

setting out.width keeps aspect ratio
```{r, out.width='50px', dpi=200}
knitr::include_graphics("rect_circ.png")
```

output looks like this

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Внутри моего ioslides_presentation я создал ряд jpg-графики.Чтобы это выглядело хорошо, мне нужно было установить опцию out.height, чтобы картинки образовывали прямоугольный блок.Обычно это работало:

```{r, out.height="200px",dpi=200}
maps=c("map_1.jpg","map_2.jpg","map_3.jpg")
knitr::include_graphics(maps)
```

Но с установленным пакетом png соотношение сторон изображений не сохранялось.Применяя вышеупомянутые изменения, работающий фрагмент выглядит следующим образом:

```{r, out.height="200px"}
maps=c("map_anthroms_full.jpg","map_anthroms_rangelands.jpg")
knitr::include_graphics(maps, dpi=NA)
```

Примечание: Установка разрешения в пределах include_graphics() или ```{r, ...} приводит к той же ошибке.

0 голосов
/ 25 мая 2018

Полагаю, вы случайно установили пакет png (это может зависеть от упомянутых вами пакетов).Если доступно png , include_graphics() попытается установить параметр чанка out.width в соответствии с настройкой dpi.В вашем случае вы устанавливаете опцию out.height, что приводит к проблеме искаженного соотношения сторон (автоматически вычисляемая ширина равна 96, а ваш ручной рост равен 50).

Если у вас есть желаемая фигураРазмер на выходе, вы можете позвонить

knitr::include_graphics("rect_circ.png", dpi = NA)

, чтобы избежать автоматической настройки out.width.Если у вас есть желаемый DPI, вы должны пропустить out.height, например,

```{r}
knitr::include_graphics("rect_circ.png", dpi = 200)
``
...