用R markdown,knitr,pandoc,beamer绘制尺寸和分辨率

默认情况下不适合幻灯片,甚至不能通过任何其他方式进行打印。

下面是.Rmd: 编辑:看来你必须在每个块中使用plot()。 第二个阴谋现在打印。

# Plot should show at high resolution ```{r echo=FALSE, comment = ""} # load some data require(plyr) rbi <- ddply(baseball, .(year), summarise, mean_rbi = mean(rbi, na.rm = TRUE)) ``` ```{r} # plot plot(mean_rbi ~ year, type = "l", data = rbi) ``` # Second attempt ```{r, fig.width = 2, fig.height = 2} plot(mean_rbi ~ year, type = "l", data = rbi) ``` # Third attempt ```{r, out.width = 2, out.height = 2} plot(mean_rbi ~ year, type = "l", data = rbi) ``` # Fourth attempt ```{r, out.width = '200px', out.height = '200px'} plot(mean_rbi ~ year, type = "l", data = rbi) ``` # Fifth attempt ```{r, out.width = '\\maxwidth'} plot(mean_rbi ~ year, type = "l", data = rbi) ``` 

保存为test.Rmd然后使用test.Rmd编译成tex:

 knit("test.Rmd") system("pandoc -s -t beamer --slide-level 1 test.md -o test.tex") 

在RStudio中打开test.tex并单击“编译PDF”。

我已经阅读了Yihui的文档 ,希望我没有错过一些非常明显的东西。

编辑包含Yihuibuild议的新代码。

 ```{r setup, include=FALSE} opts_chunk$set(dev = 'pdf') ``` # Plot should show at high resolution ```{r echo=FALSE, comment = ""} # load some data require(plyr) rbi <- ddply(baseball, .(year), summarise, mean_rbi = mean(rbi, na.rm = TRUE)) ``` ```{r} # plot plot(mean_rbi ~ year, type = "l", data = rbi) ``` # Second attempt ```{r, fig.width = 4, fig.height = 4} plot(mean_rbi ~ year, type = "l", data = rbi) ``` 

sessionInfo()

  R version 3.0.1 (16/05/2013) Platform: x86_64-pc-linux-gnu (64-bit) Local: [1] LC_CTYPE = en_US.UTF-8 LC_NUMERIC = C LC_TIME = C LC_COLLATE = C [5] LC_MONETARY=C LC_MESSAGES=C LC_PAPER=C LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=C LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] plyr_1.8 markdown_0.6 knitr_1.2 rCharts_0.3.51 slidify_0.3.52 loaded via a namespace (and not attached): [1] RJSONIO_1.0-3 codetools_0.2-8 digest_0.6.3 evaluate_0.4.3 formatR_0.8 [6] grid_3.0.1 lattice_0.20-15 stringr_0.6.2 tools_3.0.1 whisker_0.3-2 [11] yaml_2.1.7 

我认为这是一个经常被问到的关于从潘多克和降价产生的投影幻灯片中的数字行为的问题。 真正的问题是,R Markdown默认生成PNG图像(来自knitr ),默认情况下很难在LaTeX中获得正确的PNG图像的大小(我不知道为什么)。 然而,获得PDF图像的大小是相当容易的。 一种解决scheme是在第一个块中将默认graphics设备重置为PDF:

 ```{r setup, include=FALSE} opts_chunk$set(dev = 'pdf') ``` 

然后所有的图像将被写为PDF文件,LaTeX将会很高兴。

你的第二个问题是你将out.width / out.height的HTML单元与LaTeX单元out.width out.height 。 LaTeX和HTML是非常不同的技术。 您不应该期望\maxwidth在HTML中工作,或者在LaTeX中预期\maxwidth 200px 。 特别是当你想把Markdown转换成LaTeX时,最好不要设置out.width / out.height (使用fig.width / fig.height ,让LaTeX使用原来的尺寸)。

图尺寸以英寸指定,可作为文档输出格式的全局选项包含在内。 例如:

 --- title: "My Document" output: html_document: fig_width: 6 fig_height: 4 --- 

graphics设备中的graphics大小可以在大块级上增加:

 ```{r, fig.width=14, fig.height=12} #Expand the plot width to 14 inches ggplot(aes(x=mycolumn1, y=mycolumn2)) + #specify the x and y aesthetic geom_line(size=2) + #makes the line thicker theme_grey(base_size = 25) #increases the size of the font ``` 

您还可以使用out.widthout.height参数直接在输出文件中定义图的大小:

 ```{r, out.width="200px", out.height="200px"} #Expand the plot width to 200 pixels ggplot(aes(x=mycolumn1, y=mycolumn2)) + #specify the x and y aesthetic geom_line(size=2) + #makes the line thicker theme_grey(base_size = 25) #increases the size of the font ```