如何将图形导入为其原始高度/宽度比?
Posted
技术标签:
【中文标题】如何将图形导入为其原始高度/宽度比?【英文标题】: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")
```
非常感谢您的友好指导!
【问题讨论】:
可能重复:***.com/questions/62799018/… 感谢您的快速回复@VishalA。我尝试了那个问题中的方法,但没有解决问题。 【参考方案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=5
和fig.height=5
可以更改图形大小。但是,当我从外部导入图形时,我不知道图形的确切高度/宽度比。如果我设置fig.width=X
和fig.height=Y
,则无法按原样导入图形。
@Xiaochi 从外面?它是什么?带图片的外部文档?
你好@manro,“从外部”只是表示图形是从磁盘导入的,不是在当前R环境中生成的。为了更清楚,我修改了问题,请看一下。非常感谢!
@小池看,我纠正了我的答案;)
这个方法效果很好!非常感谢您的友好指导,@manro。以上是关于如何将图形导入为其原始高度/宽度比?的主要内容,如果未能解决你的问题,请参考以下文章