在Knitr或RMarkdown Beamer中并排放置的表格和图形

时间:2015-01-17 13:43:47

标签: r knitr r-markdown beamer

我正在尝试在RMarkdown / Knitr中创建Beamer演示幻灯片。在幻灯片中,我希望有一个桌子和一个并排放置的图形,然后是下面的一些文字。我只能在代码中显示我的尝试。我想在Hmisc表旁边放置密度图。

我没有使用Kable或xtable,因为我可以通过Hmisc更好地控制表格。

另外,如何调整各个幻灯片中的文字特征(字体大小,类型,颜色)?

---
title: "BeamerTest1"
subtitle: Beamer Subtitle
author: "Author"

output:
  beamer_presentation:
    theme: CambridgeUS
    colortheme: "beaver"
    fonttheme: "structurebold"
---

## Slide with Table, Figure and Text

My topic for this slide 

\scalebox{0.35}{
```{r hmisc-table, echo=FALSE, message=FALSE, results='asis'}
library(Hmisc)
latex(head(mtcars), file='', table.env=FALSE, center='none')
```
}


```{r, echo=FALSE, fig.show='hold', fig.height=1, fig.width=2.5}
library(ggplot2)
mt <- ggplot(mtcars, aes(mpg)) + geom_density(alpha=.2, fill="#FF6666") +
  theme(axis.title.x = element_text(size=10),axis.text.x  = element_text(size=8),
        axis.title.y = element_text(size=10),axis.text.y  = element_text(size=8))
mt
```

- Here is some Bullet Text
- And some more
    - Subtext
    - More Subtext

由于

3 个答案:

答案 0 :(得分:1)

考虑使用两列布局,就像您在Beamer中直接执行此操作一样。例如见:

  • this question使用RStudio提供的工具执行此操作。 (请注意,这是RStudio和RMarkdown软件包最近发展很多的一个领域,这个问题有点过时了,但它确实暗示了现有的功能。)
  • this question获得内联LaTeX和Pandoc的解决方案。 (这也适用于RStudio,因为较新的版本使用pandoc的捆绑副本作为Markdown引擎。)
  • this post on the pandoc mailing list讨论如何在您的LaTeX块中包含Markdown,例如列的Beamer命令/环境。
  • this question on TeX Stack Exchange可以帮到你,但是你需要为RMarkdown调整一下(问题是使用Sweave风格的语法将R嵌入LaTeX并使用knitr)。

问题的基本思想是幻灯片上部的双列布局,以及底部的单列布局。然后,将各个R代码块放入它们自己的列中。 (如果两个数字的大小不同,您可能需要使用垂直间距。)

Rpres格式在给定幻灯片的列布局上是全有或全无的(至少我上次检查过),因此当您希望幻灯片的底部为单个时,该解决方案将不太理想柱'。

另一个解决方案是将两个数字合二为一,然后显示合并后的数字。我不确定如何使用表格和图形,但对于两个图形,您可以使用gridExtra包放置两个latticeggplot2(甚至是一个不圣洁的两者的混合物在一个grid中彼此相邻,因此在单个组合图中。

答案 1 :(得分:1)

由于我已经像the similar question一样回答了this,因此我将使用:::表示法重复我的答案,并添加代码以创建您想要的输出。

您可以使用fenced_divs表示法或:::创建列或“两个内容的布局”。另请参见this page,以了解有关该符号的更多信息。

## Slide With Image Left

::: columns

:::: column
left
::::

:::: column
right

```{r your-chunk-name, echo=FALSE, fig.cap="your-caption-name"}
knitr::include_graphics("your/figure/path/to/the-image.pdf")

#The figure will appear on the right side of the slide...
```
::::

:::

由于在pandoc 2+中实现了支持符号的RStudio v1.2+,因此您可能需要首先安装RStudio v1.2+。安装很容易(至少在我看来);只需下载并安装RStudio v1.2+。在安装方式中,您计算​​机上的RStudio的旧版本将被新版本替换,而无需手动卸载。

下图是实现该表示法的示例。

enter image description here

产生上面幻灯片的MWE代码也在这里:

---
title: "BeamerTest1"
subtitle: Beamer Subtitle
author: "Author"

output:
  beamer_presentation:
  theme: CambridgeUS
  colortheme: "beaver"
  fonttheme: "structurebold"
---

## Slide with Table, Figure and Text

::: columns

:::: column

My topic for this slide 

\scalebox{0.35}{
```{r hmisc-table, echo=FALSE, message=FALSE, results='asis'}
library(Hmisc)
latex(head(mtcars), file='', table.env=FALSE, center='none')
```
}


```{r, echo=FALSE, fig.show='hold', fig.height=1, fig.width=2.5}
library(ggplot2)
mt <- ggplot(mtcars, aes(mpg)) + geom_density(alpha=.2, fill="#FF6666") +
theme(axis.title.x = element_text(size=10),axis.text.x  = element_text(size=8),
axis.title.y = element_text(size=10),axis.text.y  = element_text(size=8))
mt
```

::::

:::: column

- Here is some Bullet Text
- And some more
    - Subtext
    - More Subtext

::::

:::

答案 2 :(得分:0)

我认为您要按照here

所述设置块选项fig.align=right