【问题标题】:How to import a figure as its original height/width ratio?如何将图形导入为其原始高度/宽度比?
【发布时间】:2022-01-15 14:39:47
【问题描述】:

我正在使用officedown 包来生成一个Word 文档。请问,如果我想从磁盘导入一个设计好的图形,如何控制officedown不改变图形的高宽比?

比如我原来的图是这样的:

但是,在officedown生成的Word文档中,是这样的:

请问,如何避免officedown中的失真?以及如何让图形的宽度走整条线?

我的问题可以通过以下代码重现:

---
output: officedown::rdocx_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(
    echo = FALSE,
    fig.cap = TRUE,
    message = FALSE,
    warning = FALSE
)
library(officedown)
library(officer)
```

```{r}
knitr::include_graphics("the file path to a figure")
```

非常感谢您的友好指导!

【问题讨论】:

标签: r r-markdown officedown


【解决方案1】:

我做了一点实验。

对于输出:

bookdown::word_document2

...我没有找到任何解决方案。

但对于

officedown::rdocx_document

...建设

```{r fig.width=5, fig.height=5}
knitr::include_graphics("xxx.png") 
```

... 没有任何问题。


补充:

它应该适用于您的任务:

```{r}
library(imager)
my_pic <- load.image("xxx.png")
asp_rat <- dim(my_pic)[2]/dim(my_pic)[1] #find our aspect ratio

```

```{r fig.asp = asp_rat, fig.height = ??, fig.width = ??} #choose the best for your pic
knitr::include_graphics("xxx.png") 
```

看,长宽比被保存了。您应该只为每种情况确定 fig.height/width 。我还没有任何想法...

【讨论】:

  • 谢谢,@manro。是的,fig.width=5fig.height=5 可以更改图形大小。但是,当我从外部导入图形时,我不知道图形的确切高度/宽度比。如果我设置fig.width=Xfig.height=Y,则无法按原样导入图形。
  • @Xiaochi 从外面?它是什么?带图片的外部文档?
  • 你好@manro,“从外部”只是表示图形是从磁盘导入的,不是在当前R环境中生成的。为了更清楚,我修改了问题,请看一下。非常感谢!
  • @小池看,我纠正了我的答案;)
  • 这个方法效果很好!非常感谢您的友好指导,@manro。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-09
  • 1970-01-01
  • 2012-11-07
  • 1970-01-01
  • 2014-02-12
  • 1970-01-01
相关资源
最近更新 更多