【问题标题】:chunk options for figure size with knitr::include_graphics are being ignored带有 knitr::include_graphics 的图形大小的块选项被忽略
【发布时间】:2020-09-16 18:13:06
【问题描述】:

给定以下rmarkdown 文件:

```{r}
library(knitr)
```

```{r, out.width="100%"}
path <- "plotx.png"
knitr::include_graphics(path)
```

```{r, out.width="100%", out.height="150%"}
knitr::include_graphics(path)
```

数字之间的大小没有差异,好像数字大小选项没有任何效果。使用其他类似的选项,例如fig.widthfig.height,没有任何区别。

> sessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux bullseye/sid

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/atlas/libblas.so.3.10.3
LAPACK: /usr/lib/x86_64-linux-gnu/atlas/liblapack.so.3.10.3

locale:
 [1] LC_CTYPE=en_CA.UTF-8       LC_NUMERIC=C               LC_TIME=en_CA.UTF-8        LC_COLLATE=en_CA.UTF-8     LC_MONETARY=en_CA.UTF-8    LC_MESSAGES=en_CA.UTF-8   
 [7] LC_PAPER=en_CA.UTF-8       LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] knitr_1.29          slmisc_1.2.1        latticeExtra_0.6-29 lattice_0.20-41    

loaded via a namespace (and not attached):
 [1] png_0.1-7          mime_0.9           grid_4.0.2         magrittr_1.5       evaluate_0.14      highr_0.8          stringi_1.4.6      RColorBrewer_1.1-2 tools_4.0.2       
[10] stringr_1.4.0      markdown_1.1       jpeg_0.1-8.1       xfun_0.16          yaml_2.2.1         compiler_4.0.2    

【问题讨论】:

    标签: r knitr


    【解决方案1】:

    对于 HTML 输出,设置 out.width="100%" 会将图像缩放到其父容器的 100%宽度,而不是图像像素的 100%。从而保持纵横比,在不失真的情况下提供最大可能的结果。设置out.width="100%" out.height="150%" 因此会产生相同的结果。使用像素来获得精确的尺寸(这可能会导致失真)。

    对于 LaTeX 输出,纵横比保持不变,无论您使用像素还是 %(这里唯一的区别是像素被视为像素,而 % 被转换为缩放因子为 \textheight\linewidth)。您可以使用块选项out.extra='keepaspectratio=false' 来防止这种情况发生。

    示例:

    图片来自here

    ---
    title: "Untitled"
    output:
      html_document: default
      pdf_document: default
    ---
    

    LaTeX 和 HTML: 宽度 = 100px,保持纵横比

    ```{r, out.width = "100px"}
    tiger <- "tiger.png"
    knitr::include_graphics(tiger)
    ```
    

    LaTeX: 保持纵横比,HTML: 宽度 = 700px,高度 = 200px 纵横比保持

    ```{r, out.height = "200px", out.width = "700px"}
    knitr::include_graphics(tiger)
    ```
    

    (LaTeX 左侧,HTML 右侧。图像被缩放以适合并排显示。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      • 2017-04-17
      • 1970-01-01
      相关资源
      最近更新 更多