从 .RMD 中的代码块中删除空白 space(将 knitr 编译为 Beamer pdf)
Removing blank space from code chunks in .RMD (compiling knitr to Beamer pdf)
我正在 RStudio(版本 0.99.903)的 R Markdown .Rmd 文件中创建幻灯片,输出设置为 PDF (Beamer)。在几张幻灯片上,我想在文本下方或单独在幻灯片上插入一个图表,生成图表的代码在屏幕上不可见。然而,尽管我尝试了很多方法,但在文本结尾和图形开头之间总是有一个 space,如果我没有设置 echo=FALSE,大概是代码块出现的位置。例如:
---
title: "Untitled"
author: "Math 35"
date: "October 14, 2016"
output: beamer_presentation
---
```{r setup, echo=FALSE, include=FALSE}
knitr::knit_hooks$set(mysize = function(before, options, envir) {
if (before)
return(options$size)
})
knitr::opts_chunk$set(size='\small')
knitr::opts_chunk$set(warning=FALSE)
knitr::opts_chunk$set(message=FALSE)
knitr::opts_chunk$set(fig.align='center')
```
## Recap from Last Time: Continuous Random Variables
-- Uniform Random Variable $X\sim U(a,b)$
$$f_X(x) = \frac{1}{b-a}, a \leq x \leq b$$
$$E[X] = \frac{a+b}{2}$$
$$Var(X) = \frac{(b-a)^2}{12}$$
```{r, echo=FALSE, fig.height=3, fig.width=3.5}
density <- dunif(x=seq(from=0, to=6, by=0.01), min=1, max=5)
plot(seq(from=0, to=6, by=0.01), density, col="black", type="l", ylim=c(0, 0.5), lwd=4, xlab="X ~ U(1,5)")
lines(c(3,3), c(0,dunif(3, min=1, max=5)), col="red", lwd=2)
text(2.9, 0.1, "E[X]=(1+5)/2 = 3", col="purple")
```
当我在 R Studio 中 "Knit PDF" 时,生成的幻灯片在文本和图形之间有很大的空白 space。因此,该图不适合幻灯片。我想删除这个空白 space 以便所有内容都可以放在幻灯片上。
以下是我尝试过但无效的所有代码块选项:
results='hide' 这通常会隐藏常规命令结果但仍显示数字,但在这种情况下仍会留下空白 space.
strip.white=TRUE
整洁=真
fig.keep = 'high'
fig.keep = 'last'
高亮='false'
我也看过:
http://yihui.name/knitr/demo/output/ which refers to https://github.com/yihui/knitr/issues/231 但由于这解决了我不熟悉的 .Rnw 文件中的问题,因此我无法使该解决方案起作用。我尝试将建议的 header 放在 .Rmd 文件的顶部,但 "Knit PDF" 没有完成编译。我可能做错了。
我查看了 R Markdown 参考指南,我在上面找到了各种选项。
我现在已经花了两个小时试图弄清楚如何让一个数字正确显示在一张幻灯片上。任何帮助将不胜感激。
您可以使用 par()
,但部分问题来自乳胶方面。使用 \begin{center}\end{center}
环境添加垂直 space。你可以尝试修改相关的 knitr 钩子,或者简单地手动添加居中指令,
\centering
```{r, echo=FALSE, fig.height=1.5, fig.width=3.5}
density <- dunif(x=seq(from=0, to=6, by=0.01), min=1, max=5)
par(mar=c(2.5,2.5,0.5,0.5), mgp=c(1.5, 0.5, 0), bg="grey95")
plot(seq(from=0, to=6, by=0.01), density, col="black", type="l", ylim=c(0, 0.5), lwd=4, xlab="X ~ U(1,5)")
lines(c(3,3), c(0,dunif(3, min=1, max=5)), col="red", lwd=2)
text(2.9, 0.1, "E[X]=(1+5)/2 = 3", col="purple")
```
感谢所有回复的人。我设置了有效的代码块选项 out.width='65%'
(同时将 yaxis 更改为从 0 扩展到 0.3 而不是从 0 扩展到 0.5):
---
title: "Lecture 5 - The Normal Distribution"
output:
beamer_presentation:
highlight: null
---
```{r setup, echo=FALSE, include=FALSE}
knitr::knit_hooks$set(mysize = function(before, options, envir) {
if (before)
return(options$size)
})
knitr::opts_chunk$set(size='\small')
knitr::opts_chunk$set(echo=TRUE)
knitr::opts_chunk$set(warning=FALSE)
knitr::opts_chunk$set(message=FALSE)
knitr::opts_chunk$set(fig.align='center')
```
## Recap from Last Time: Continuous Random Variables
-- Uniform Random Variable $X\sim U(a,b)$
$$f_X(x) = \frac{1}{b-a}, a \leq x \leq b$$
$$E[X] = \frac{a+b}{2}$$
$$Var(X) = \frac{(b-a)^2}{12}$$
```{r, echo=FALSE,out.width='65%'}
density <- dunif(x=seq(from=0, to=6, by=0.01), min=1, max=5)
plot(seq(from=0, to=6, by=0.01), density, col="black", type="l", ylim=c(0, 0.3), lwd=4, xlab="X ~ U(1,5)")
lines(c(3,3), c(0,dunif(3, min=1, max=5)), col="red", lwd=2)
text(2.9, 0.1, "E[X]=(1+5)/2 = 3", col="purple")
```
我正在 RStudio(版本 0.99.903)的 R Markdown .Rmd 文件中创建幻灯片,输出设置为 PDF (Beamer)。在几张幻灯片上,我想在文本下方或单独在幻灯片上插入一个图表,生成图表的代码在屏幕上不可见。然而,尽管我尝试了很多方法,但在文本结尾和图形开头之间总是有一个 space,如果我没有设置 echo=FALSE,大概是代码块出现的位置。例如:
---
title: "Untitled"
author: "Math 35"
date: "October 14, 2016"
output: beamer_presentation
---
```{r setup, echo=FALSE, include=FALSE}
knitr::knit_hooks$set(mysize = function(before, options, envir) {
if (before)
return(options$size)
})
knitr::opts_chunk$set(size='\small')
knitr::opts_chunk$set(warning=FALSE)
knitr::opts_chunk$set(message=FALSE)
knitr::opts_chunk$set(fig.align='center')
```
## Recap from Last Time: Continuous Random Variables
-- Uniform Random Variable $X\sim U(a,b)$
$$f_X(x) = \frac{1}{b-a}, a \leq x \leq b$$
$$E[X] = \frac{a+b}{2}$$
$$Var(X) = \frac{(b-a)^2}{12}$$
```{r, echo=FALSE, fig.height=3, fig.width=3.5}
density <- dunif(x=seq(from=0, to=6, by=0.01), min=1, max=5)
plot(seq(from=0, to=6, by=0.01), density, col="black", type="l", ylim=c(0, 0.5), lwd=4, xlab="X ~ U(1,5)")
lines(c(3,3), c(0,dunif(3, min=1, max=5)), col="red", lwd=2)
text(2.9, 0.1, "E[X]=(1+5)/2 = 3", col="purple")
```
当我在 R Studio 中 "Knit PDF" 时,生成的幻灯片在文本和图形之间有很大的空白 space。因此,该图不适合幻灯片。我想删除这个空白 space 以便所有内容都可以放在幻灯片上。
以下是我尝试过但无效的所有代码块选项:
results='hide' 这通常会隐藏常规命令结果但仍显示数字,但在这种情况下仍会留下空白 space.
strip.white=TRUE
整洁=真
fig.keep = 'high'
fig.keep = 'last'
高亮='false'
我也看过:
http://yihui.name/knitr/demo/output/ which refers to https://github.com/yihui/knitr/issues/231 但由于这解决了我不熟悉的 .Rnw 文件中的问题,因此我无法使该解决方案起作用。我尝试将建议的 header 放在 .Rmd 文件的顶部,但 "Knit PDF" 没有完成编译。我可能做错了。
我查看了 R Markdown 参考指南,我在上面找到了各种选项。
我现在已经花了两个小时试图弄清楚如何让一个数字正确显示在一张幻灯片上。任何帮助将不胜感激。
您可以使用 par()
,但部分问题来自乳胶方面。使用 \begin{center}\end{center}
环境添加垂直 space。你可以尝试修改相关的 knitr 钩子,或者简单地手动添加居中指令,
\centering
```{r, echo=FALSE, fig.height=1.5, fig.width=3.5}
density <- dunif(x=seq(from=0, to=6, by=0.01), min=1, max=5)
par(mar=c(2.5,2.5,0.5,0.5), mgp=c(1.5, 0.5, 0), bg="grey95")
plot(seq(from=0, to=6, by=0.01), density, col="black", type="l", ylim=c(0, 0.5), lwd=4, xlab="X ~ U(1,5)")
lines(c(3,3), c(0,dunif(3, min=1, max=5)), col="red", lwd=2)
text(2.9, 0.1, "E[X]=(1+5)/2 = 3", col="purple")
```
感谢所有回复的人。我设置了有效的代码块选项 out.width='65%'
(同时将 yaxis 更改为从 0 扩展到 0.3 而不是从 0 扩展到 0.5):
---
title: "Lecture 5 - The Normal Distribution"
output:
beamer_presentation:
highlight: null
---
```{r setup, echo=FALSE, include=FALSE}
knitr::knit_hooks$set(mysize = function(before, options, envir) {
if (before)
return(options$size)
})
knitr::opts_chunk$set(size='\small')
knitr::opts_chunk$set(echo=TRUE)
knitr::opts_chunk$set(warning=FALSE)
knitr::opts_chunk$set(message=FALSE)
knitr::opts_chunk$set(fig.align='center')
```
## Recap from Last Time: Continuous Random Variables
-- Uniform Random Variable $X\sim U(a,b)$
$$f_X(x) = \frac{1}{b-a}, a \leq x \leq b$$
$$E[X] = \frac{a+b}{2}$$
$$Var(X) = \frac{(b-a)^2}{12}$$
```{r, echo=FALSE,out.width='65%'}
density <- dunif(x=seq(from=0, to=6, by=0.01), min=1, max=5)
plot(seq(from=0, to=6, by=0.01), density, col="black", type="l", ylim=c(0, 0.3), lwd=4, xlab="X ~ U(1,5)")
lines(c(3,3), c(0,dunif(3, min=1, max=5)), col="red", lwd=2)
text(2.9, 0.1, "E[X]=(1+5)/2 = 3", col="purple")
```