在R Markdown中插入图片/表格

use*_*616 110 r r-markdown

所以我想在R Markdown中插入一张桌子和一张图片.在常规word文档中,我可以轻松地插入一个表(5行乘2列),并为图片复制和粘贴.

  1. 如何插入5行2列表(并在其中键入内容)(并根据第2列宽度比第1列调整表格)?

  2. 如何插入图片?根据我的理解,我应该首先将图片保存为png,然后将其引用到我的文档中.此外,我想自动调整图片到报告,比如不占用一页以上,或者不超过一页.(有没有办法让我根据自己的喜好调整图片的大小)?

  3. 如果有人知道任何关于R Markdown的酷/格式,你还可以让我知道吗?我知道这#是一个段落的大标题,并且** **大胆的东西.多数民众赞成我所知道的一切!

r2e*_*ans 130

有几个站点为表格和图像提供合理的备忘单或HOWTO.我的名单上的首位是:

图片使用起来非常简单,但不能调整图像以适应页面.要调整图像属性(大小,分辨率,颜色,边框等),您需要某种形式的图像编辑器.我发现我可以用ImageMagick,GIMPInkScape之一做所有我需要的东西,所有这些都是免费和开源的.

要添加图片,请使用:

![Caption for the picture.](/path/to/image.png)
Run Code Online (Sandbox Code Playgroud)

我知道pandoc支持PNG和JPG,它们可以满足您的大部分需求.

如果要在R中创建图像大小(例如,绘图),则可以控制图像大小.这可以直接在创建图像的命令中完成,或者更好的是,如果你使用knitr通过选项(强烈推荐...检查块选项,特别是在Plots下).

我强烈建议您仔细阅读这些教程; 降价是非常方便的,并且具有许多功能,大多数人不会定期使用,但一旦他们学习它就真的很喜欢.(在这些教程中,SO不一定是提出问题的最佳位置.)

  • 该文件在`.Rmd`文件中不是永久的.如果你将它(使用pandoc)"编译"为HTML,添加`--self-contained`会将图像编码为html文件.PDF和Word文件将它作为文件的一部分,因此您在发送时不需要包含实际的PNG文件.但是,Rmd文件要求您手动包含图像文件. (3认同)

Mic*_*per 66

更新:自@ r2evans的答案以来,将图像插入R Markdown并控制图像的大小要容易得多.

图片

本书中的很好地解释了包含图像的最佳方式是使用include_graphics().例如,可以使用下面的标题打印全宽图像:

```{r pressure, echo=FALSE, fig.cap="A caption", out.width = '100%'}
knitr::include_graphics("temp.png")
```
Run Code Online (Sandbox Code Playgroud)

这种方法比pandoc方法更好的原因![your image](path/to/image):

  • 它会根据输出格式自动更改命令(HTML/PDF/Word)
  • 可以使用相同的语法来绘制plot(fig.width)的大小,报告中的输出宽度(out.width),添加标题(fig.cap)等.
  • 它使用最好的图形设备进行输出.这意味着PDF图像保持高分辨率.

knitr::kable()是包括在R降价报告表作为充分说明了最好的方式在这里.同样,此功能可以自动为所选输出选择正确的格式.

```{r table}
knitr::kable(mtcars[1:5,, 1:5], caption = "A table caption")
```
Run Code Online (Sandbox Code Playgroud)

如果您想在R Markdown中创建自己的简单表并使用R Studio,则可以查看insert_table .它为制作表格提供了一个整洁的图形界面.

实现表列宽度的自定义样式超出了范围knitr,但是kableExtra已经编写了包来帮助实现这一目的:https://cran.r-project.org/web/packages/kableExtra/index.html

风格小贴士

[R降价小抄仍然是了解你最多只能使用基本语法的最佳场所.

如果您正在寻找格式化的潜在扩展,那么该bookdown软件包也值得探索.它提供了交叉引用,创建特殊标题等功能:https://bookdown.org/yihui/bookdown/markdown-extensions-by-bookdown.html


小智 5

三月份,我用slidify、Rmarkdown 和impress.js做了一个套牌演示,这是一个很酷的 3D 框架。我的标题看起来像index.Rmd

---
title       : French TER (regional train) monthly regularity
subtitle    : since January 2013
author      : brigasnuncamais
job         : Business Intelligence / Data Scientist consultant
framework   : impressjs     # {io2012, html5slides, shower, dzslides, ...}
highlighter : highlight.js  # {highlight.js, prettify, highlight}
hitheme     : tomorrow      # 
widgets     : []            # {mathjax, quiz, bootstrap}
mode        : selfcontained # {standalone, draft}
knit        : slidify::knit2slides
Run Code Online (Sandbox Code Playgroud)

子目录是:

/assets /css    /impress-demo.css
        /fig    /unnamed-chunk-1-1.png (generated by included R code)
        /img    /SS850452.png (my image used as background)
        /js     /impress.js
        /layouts/custbg.html # content:--- layout: slide --- {{{ slide.html }}}
        /libraries  /frameworks /impressjs
                                /io2012
                    /highlighters   /highlight.js
                                    /impress.js
index.Rmd
Run Code Online (Sandbox Code Playgroud)

背景代码片段中带有图像的幻灯片将在我的 .Rmd 中:

<div id="bg">
  <img src="assets/img/SS850452.png" alt="">
</div>  
Run Code Online (Sandbox Code Playgroud)

自从我上次工作以来出现了一些问题(照片不再出现在背景中,在我的 R 图中文本太大)但它在我的本地工作正常。当我在 RPubs 上运行它时出现问题。


ms6*_*609 5

在插入图片时,![Caption for the picture.](/path/to/image.png)如果需要PDF输出,r2evans的建议可能会出现问题。

knitr函数include_graphics knitr::include_graphics('/path/to/image.png')是一种更具移植性的替代方法,它将代表您生成最适合您所生成的输出格式的降价。